diff --git a/app/Services/PdfMaker/Designs/Bold.php b/app/Services/PdfMaker/Designs/Bold.php index ef3fd00106ad..1cdf2705707c 100644 --- a/app/Services/PdfMaker/Designs/Bold.php +++ b/app/Services/PdfMaker/Designs/Bold.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Bold extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Business.php b/app/Services/PdfMaker/Designs/Business.php index 7da3d7a68b52..b841e7cb6e02 100644 --- a/app/Services/PdfMaker/Designs/Business.php +++ b/app/Services/PdfMaker/Designs/Business.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Business extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Clean.php b/app/Services/PdfMaker/Designs/Clean.php index bf9dfaf5ec36..72bded182459 100644 --- a/app/Services/PdfMaker/Designs/Clean.php +++ b/app/Services/PdfMaker/Designs/Clean.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Clean extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Creative.php b/app/Services/PdfMaker/Designs/Creative.php index 5eb27d9b46f1..80d34b37533e 100644 --- a/app/Services/PdfMaker/Designs/Creative.php +++ b/app/Services/PdfMaker/Designs/Creative.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Creative extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Elegant.php b/app/Services/PdfMaker/Designs/Elegant.php index d1ea33c8167d..df39cc3543eb 100644 --- a/app/Services/PdfMaker/Designs/Elegant.php +++ b/app/Services/PdfMaker/Designs/Elegant.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Elegant extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Hipster.php b/app/Services/PdfMaker/Designs/Hipster.php index 2839dd3783a7..072e8ec8d93c 100644 --- a/app/Services/PdfMaker/Designs/Hipster.php +++ b/app/Services/PdfMaker/Designs/Hipster.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Hipster extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Modern.php b/app/Services/PdfMaker/Designs/Modern.php index 1caf7ef398ef..16cf056ae2b5 100644 --- a/app/Services/PdfMaker/Designs/Modern.php +++ b/app/Services/PdfMaker/Designs/Modern.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Modern extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Plain.php b/app/Services/PdfMaker/Designs/Plain.php index 8d05119ade37..6876ef9c0b6f 100644 --- a/app/Services/PdfMaker/Designs/Plain.php +++ b/app/Services/PdfMaker/Designs/Plain.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Plain extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; diff --git a/app/Services/PdfMaker/Designs/Playful.php b/app/Services/PdfMaker/Designs/Playful.php index 72dcf0840167..a9ded2365031 100644 --- a/app/Services/PdfMaker/Designs/Playful.php +++ b/app/Services/PdfMaker/Designs/Playful.php @@ -13,12 +13,12 @@ namespace App\Services\PdfMaker\Designs; use App\Services\PdfMaker\Designs\Utilities\BaseDesign; -use App\Services\PdfMaker\Designs\Utilities\BuildTableHeader; +use App\Services\PdfMaker\Designs\Utilities\TableHelpers; use App\Utils\Traits\MakesInvoiceValues; class Playful extends BaseDesign { - use MakesInvoiceValues, BuildTableHeader; + use MakesInvoiceValues, TableHelpers; /** Global list of table elements, @var array */ public $elements; @@ -179,14 +179,14 @@ class Playful extends BaseDesign return [ ['element' => 'tr', 'content' => '', 'elements' => [ ['element' => 'td', 'content' => '$entity.public_notes', 'properties' => ['class' => 'border-l-4 border-white px-4 text-right', 'colspan' => $this->calculateColspan(3)]], - ['element' => 'td', 'content' => '$subtotal_label', 'properties' => ['class' => 'px-4 py-4 text-right', 'colspan' => '2']], - ['element' => 'td', 'content' => '$subtotal', 'properties' => ['class' => 'px-4 py-2 text-right']], + ['element' => 'td', 'content' => '$subtotal_label', 'properties' => ['hidden' => $this->toggleHiddenProperty($this->entity->calc()->getSubTotal()), 'class' => 'px-4 py-4 text-right', 'colspan' => '2']], + ['element' => 'td', 'content' => '$subtotal', 'properties' => ['hidden' => $this->toggleHiddenProperty($this->entity->calc()->getSubTotal()), 'class' => 'px-4 py-2 text-right']], ]], - ['element' => 'tr', 'content' => '', 'elements' => [ + ['element' => 'tr', 'properties' => ['hidden' => $this->toggleHiddenProperty($this->entity->calc()->getTotalDiscount())], 'content' => '', 'elements' => [ ['element' => 'td', 'content' => '$discount_label', 'properties' => ['class' => 'border-l-4 border-white px-4 text-right', 'colspan' => $this->calculateColspan(1)]], ['element' => 'td', 'content' => '$discount', 'properties' => ['class' => 'px-4 py-2 text-right']], ]], - ['element' => 'tr', 'content' => '', 'properties' => ['class' => 'mt-8 px-4 py-2'], 'elements' => [ + ['element' => 'tr', 'content' => '', 'properties' => ['hidden' => $this->toggleHiddenProperty($this->entity->partial), 'class' => 'mt-8 px-4 py-2'], 'elements' => [ ['element' => 'td', 'content' => '$partial_due_label', 'properties' => ['class' => 'border-l-4 border-white px-4 text-right', 'colspan' => $this->calculateColspan(1)]], ['element' => 'td', 'content' => '$partial_due', 'properties' => ['class' => 'px-4 py-2 text-right']], ]], @@ -198,7 +198,7 @@ class Playful extends BaseDesign ['element' => 'td', 'content' => '$invoice_total_label', 'properties' => ['class' => 'border-l-4 border-white px-4 text-right', 'colspan' => $this->calculateColspan(1)]], ['element' => 'td', 'content' => '$invoice_total', 'properties' => ['class' => 'px-4 py-2 text-right']], ]], - ['element' => 'tr', 'content' => '', 'properties' => ['class' => 'mt-8 px-4 py-2'], 'elements' => [ + ['element' => 'tr', 'content' => '', 'properties' => ['hidden' => $this->toggleHiddenProperty($this->entity->balance), 'class' => 'mt-8 px-4 py-2'], 'elements' => [ ['element' => 'td', 'content' => '$balance_due_label', 'properties' => ['class' => 'border-l-4 border-white px-4 text-right font-semibold text-teal-600', 'colspan' => $this->calculateColspan(1)]], ['element' => 'td', 'content' => '$balance_due', 'properties' => ['class' => 'px-4 py-2 text-right']], ]], diff --git a/app/Services/PdfMaker/Designs/Utilities/BuildTableHeader.php b/app/Services/PdfMaker/Designs/Utilities/TableHelpers.php similarity index 80% rename from app/Services/PdfMaker/Designs/Utilities/BuildTableHeader.php rename to app/Services/PdfMaker/Designs/Utilities/TableHelpers.php index 86f6f5c5ff10..e3b39b72680f 100644 --- a/app/Services/PdfMaker/Designs/Utilities/BuildTableHeader.php +++ b/app/Services/PdfMaker/Designs/Utilities/TableHelpers.php @@ -12,7 +12,7 @@ namespace App\Services\PdfMaker\Designs\Utilities; -trait BuildTableHeader +trait TableHelpers { /** * This method will help us decide either we show @@ -65,4 +65,24 @@ trait BuildTableHeader return (int)$total - $taken; } + + /** + * Return "true" or "false" based on null or empty check. + * We need to return false as string because of HTML parsing. + * + * @param string $property + * @return string + */ + public function toggleHiddenProperty(string $property): string + { + if (is_null($property)) { + return 'false'; + } + + if (empty($property)) { + return 'false'; + } + + return 'true'; + } }