From 533670f3f165dfe9439c927bb486270267b7bfe9 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 24 Feb 2022 14:50:16 -0800 Subject: [PATCH] faulty method for converting asset acceptance to pdf --- .../Account/AcceptanceController.php | 17 +- composer.json | 1 + composer.lock | 288 +++++++++++++++++- config/app.php | 2 + 4 files changed, 305 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index b25a8df45b..45b59f4ce2 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -10,6 +10,7 @@ use App\Http\Controllers\Controller; use App\Models\CheckoutAcceptance; use App\Models\Company; use App\Models\Contracts\Acceptable; +use Barryvdh\DomPDF\PDF; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Storage; @@ -95,7 +96,6 @@ class AcceptanceController extends Controller if (! Storage::exists('private_uploads/signatures')) { Storage::makeDirectory('private_uploads/signatures', 775); } - $sig_filename = ''; if ($request->filled('signature_output')) { $sig_filename = 'siglog-'.Str::uuid().'-'.date('Y-m-d-his').'.png'; @@ -107,7 +107,6 @@ class AcceptanceController extends Controller if ($request->input('asset_acceptance') == 'accepted') { $acceptance->accept($sig_filename); - event(new CheckoutAccepted($acceptance)); $return_msg = trans('admin/users/message.accepted'); @@ -118,7 +117,21 @@ class AcceptanceController extends Controller $return_msg = trans('admin/users/message.declined'); } + $sig_image=Storage::get('private_uploads/signatures/'.$sig_filename); + $this->SignatureEulaPDF($acceptance, $sig_image ); return redirect()->to('account/accept')->with('success', $return_msg); } + + public function SignatureEulaPDF($acceptance, $sig_image) + { +// When I compact the $data I at least get back an ipsum string in the error message that is recognized as an +// "unknown variable". 2nd param in load view should be the array of things you wanted rendered in the pdf. + $data = [ + 'eula'=> $acceptance->checkoutable->getEula(), + 'signature' => $sig_image, + ]; + $pdf = PDF::loadView('account.accept.create', compact($data)); + return $pdf->download('test.pdf'); + } } diff --git a/composer.json b/composer.json index 1db3730274..b8e1e8e18b 100644 --- a/composer.json +++ b/composer.json @@ -20,6 +20,7 @@ "alek13/slack": "^2.0", "bacon/bacon-qr-code": "^2.0", "barryvdh/laravel-debugbar": "^3.6", + "barryvdh/laravel-dompdf": "^1.0", "doctrine/cache": "^1.10", "doctrine/common": "^2.12", "doctrine/dbal": "^3.1", diff --git a/composer.lock b/composer.lock index 45b93758f4..bbc043aaed 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4cdd1c1cd704c629b2cee1bee7560207", + "content-hash": "27d33fc59a88ad68ac3cd0c723038fee", "packages": [ { "name": "alek13/slack", @@ -407,6 +407,82 @@ ], "time": "2021-12-14T14:45:18+00:00" }, + { + "name": "barryvdh/laravel-dompdf", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-dompdf.git", + "reference": "e3f429e97087b2ef19b83e5ed313f080f2477685" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/e3f429e97087b2ef19b83e5ed313f080f2477685", + "reference": "e3f429e97087b2ef19b83e5ed313f080f2477685", + "shasum": "" + }, + "require": { + "dompdf/dompdf": "^1", + "illuminate/support": "^6|^7|^8|^9", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "nunomaduro/larastan": "^1|^2", + "orchestra/testbench": "^4|^5|^6|^7", + "phpro/grumphp": "^1", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\DomPDF\\ServiceProvider" + ], + "aliases": { + "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\DomPDF\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "A DOMPDF Wrapper for Laravel", + "keywords": [ + "dompdf", + "laravel", + "pdf" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-dompdf/issues", + "source": "https://github.com/barryvdh/laravel-dompdf/tree/v1.0.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-01-29T08:02:59+00:00" + }, { "name": "brick/math", "version": "0.9.3", @@ -1747,6 +1823,73 @@ "abandoned": "roave/better-reflection", "time": "2020-10-27T21:46:55+00:00" }, + { + "name": "dompdf/dompdf", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "60b704331479a69e9bcdb3496da2315b5c4f94fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/60b704331479a69e9bcdb3496da2315b5c4f94fd", + "reference": "60b704331479a69e9bcdb3496da2315b5c4f94fd", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "phenx/php-font-lib": "^0.5.4", + "phenx/php-svg-lib": "^0.3.3 || ^0.4.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + }, + { + "name": "Brian Sweeney", + "email": "eclecticgeek@gmail.com" + }, + { + "name": "Gabriel Bull", + "email": "me@gabrielbull.com" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v1.2.0" + }, + "time": "2022-02-07T13:02:10+00:00" + }, { "name": "dragonmantank/cron-expression", "version": "v3.1.0", @@ -5964,6 +6107,96 @@ "abandoned": "symfony/polyfill-mbstring or symfony/string", "time": "2021-01-07T16:38:58+00:00" }, + { + "name": "phenx/php-font-lib", + "version": "0.5.4", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4", + "shasum": "" + }, + "require": { + "ext-mbstring": "*" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3 || ^4 || ^5" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "support": { + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/0.5.4" + }, + "time": "2021-12-17T19:44:54+00:00" + }, + { + "name": "phenx/php-svg-lib", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "3ffbbb037f0871c3a819e90cff8b36dd7e656189" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/3ffbbb037f0871c3a819e90cff8b36dd7e656189", + "reference": "3ffbbb037f0871c3a819e90cff8b36dd7e656189", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.4 || ^8.0", + "sabberworm/php-css-parser": "^8.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "support": { + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/0.4.0" + }, + "time": "2021-12-17T14:08:35+00:00" + }, { "name": "php-http/message-factory", "version": "v1.0.2", @@ -7602,6 +7835,59 @@ }, "time": "2020-09-10T17:20:14+00:00" }, + { + "name": "sabberworm/php-css-parser", + "version": "8.4.0", + "source": { + "type": "git", + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=5.6.20" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "phpunit/phpunit": "^4.8.36" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "type": "library", + "autoload": { + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0" + }, + "time": "2021-12-11T13:40:54+00:00" + }, { "name": "sebastian/comparator", "version": "4.0.6", diff --git a/config/app.php b/config/app.php index 796fa74e7a..87588c18f8 100755 --- a/config/app.php +++ b/config/app.php @@ -328,6 +328,7 @@ return [ Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, + Barryvdh\DomPDF\ServiceProvider::class, /* * Package Service Providers... @@ -396,6 +397,7 @@ return [ 'Mail' => Illuminate\Support\Facades\Mail::class, 'Notification' => Illuminate\Support\Facades\Notification::class, 'Password' => Illuminate\Support\Facades\Password::class, + 'PDF' => Barryvdh\DomPDF\Facade::class, 'Queue' => Illuminate\Support\Facades\Queue::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class, 'Redis' => Illuminate\Support\Facades\Redis::class,