From 069e9e52fe1465f957260b56a65fe107a411c707 Mon Sep 17 00:00:00 2001
From: snipe <snipe@snipe.net>
Date: Wed, 17 Mar 2021 22:19:10 -0700
Subject: [PATCH] =?UTF-8?q?Try/catch=20barcodes=20so=20they=20don=E2=80=99?=
 =?UTF-8?q?t=20shit=20up=20the=20logs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: snipe <snipe@snipe.net>
---
 app/Http/Controllers/Assets/AssetsController.php | 13 ++++++++++---
 resources/macros/macros.php                      |  5 +++++
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php
index 7b2f8a34f..9c82bcaf9 100755
--- a/app/Http/Controllers/Assets/AssetsController.php
+++ b/app/Http/Controllers/Assets/AssetsController.php
@@ -14,6 +14,7 @@ use App\Models\Setting;
 use App\Models\User;
 use Auth;
 use Carbon\Carbon;
+use Intervention\Image\Facades\Image;
 use DB;
 use Gate;
 use Illuminate\Http\Request;
@@ -486,10 +487,16 @@ class AssetsController extends Controller
                 $barcode_width = ($settings->labels_width - $settings->labels_display_sgutter) * 96.000000000001;
 
                 $barcode = new \Com\Tecnick\Barcode\Barcode();
-                $barcode_obj = $barcode->getBarcodeObj($settings->alt_barcode,$asset->asset_tag,($barcode_width < 300 ? $barcode_width : 300),50);
+                try {
+                    $barcode_obj = $barcode->getBarcodeObj($settings->alt_barcode,$asset->asset_tag,($barcode_width < 300 ? $barcode_width : 300),50);
+                    file_put_contents($barcode_file, $barcode_obj->getPngData());
+                    return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
+                } catch(\Exception $e) {
+                    \Log::debug('The barcode format is invalid.');
+                    return response(file_get_contents(public_path('uploads/barcodes/invalid_barcode.gif')))->header('Content-type', 'image/gif');
+                }
+
 
-                file_put_contents($barcode_file, $barcode_obj->getPngData());
-                return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
             }
         }
     }
diff --git a/resources/macros/macros.php b/resources/macros/macros.php
index 56e85ac9f..0cca0864c 100644
--- a/resources/macros/macros.php
+++ b/resources/macros/macros.php
@@ -441,6 +441,11 @@ Form::macro('alt_barcode_types', function ($name = "alt_barcode", $selected = nu
         'C39',
         'PDF417',
         'EAN5',
+        'EAN13',
+        'UPCA',
+        'UPCE',
+
+        
 
     );
 
-- 
GitLab