From 15eb6df1dbeb486f336fffd0bf98cf6a0af77674 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 19 May 2016 19:33:53 -0700 Subject: [PATCH] Add settings for alert interval threshold and inventory threshold --- app/Console/Commands/SendExpirationAlerts.php | 4 +-- app/Helpers/Helper.php | 6 ++-- app/Http/Controllers/SettingsController.php | 3 ++ .../2016_05_19_191146_add_alter_interval.php | 33 +++++++++++++++++++ ...6_05_19_192226_add_inventory_threshold.php | 33 +++++++++++++++++++ resources/lang/en/admin/settings/general.php | 4 ++- resources/views/settings/edit.blade.php | 25 ++++++++++++++ 7 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 database/migrations/2016_05_19_191146_add_alter_interval.php create mode 100644 database/migrations/2016_05_19_192226_add_inventory_threshold.php diff --git a/app/Console/Commands/SendExpirationAlerts.php b/app/Console/Commands/SendExpirationAlerts.php index d40470ae59..b5c1170bdb 100644 --- a/app/Console/Commands/SendExpirationAlerts.php +++ b/app/Console/Commands/SendExpirationAlerts.php @@ -43,7 +43,7 @@ class SendExpirationAlerts extends Command { { // Expiring Assets - $expiring_assets = Asset::getExpiringWarrantee(60); + $expiring_assets = Asset::getExpiringWarrantee(Setting::getSettings()->alert_interval); $this->info(count($expiring_assets).' expiring assets'); $asset_data['count'] = count($expiring_assets); @@ -71,7 +71,7 @@ class SendExpirationAlerts extends Command { } // Expiring licenses - $expiring_licenses = License::getExpiringLicenses(60); + $expiring_licenses = License::getExpiringLicenses(Setting::getSettings()->alert_interval); $this->info(count($expiring_licenses).' expiring licenses'); diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index b5b0d11ea1..ecad35935d 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -213,7 +213,7 @@ class Helper foreach ($consumables as $consumable) { $avail = $consumable->numRemaining(); - if ($avail < ($consumable->min_amt) + 3) { + if ($avail < ($consumable->min_amt) + \App\Models\Setting::getSettings()->alert_threshold) { $percent = number_format((($consumable->numRemaining() / $consumable->qty) * 100), 0); $items_array[$all_count]['id'] = $consumable->id; $items_array[$all_count]['name'] = $consumable->name; @@ -229,7 +229,7 @@ class Helper foreach ($accessories as $accessory) { $avail = $accessory->numRemaining(); - if ($avail < ($accessory->min_amt) + 3) { + if ($avail < ($accessory->min_amt) + \App\Models\Setting::getSettings()->alert_threshold) { $percent = number_format((($accessory->numRemaining() / $accessory->qty) * 100), 0); $items_array[$all_count]['id'] = $accessory->id; $items_array[$all_count]['name'] = $accessory->name; @@ -244,7 +244,7 @@ class Helper foreach ($components as $component) { $avail = $component->numRemaining(); - if ($avail < ($component->min_amt) + 3) { + if ($avail < ($component->min_amt) + \App\Models\Setting::getSettings()->alert_threshold) { $percent = number_format((($component->numRemaining() / $component->total_qty) * 100), 0); $items_array[$all_count]['id'] = $component->id; $items_array[$all_count]['name'] = $component->name; diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index eae95eb533..29c0d9be46 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -338,6 +338,9 @@ class SettingsController extends Controller $setting->qr_text = e(Input::get('qr_text')); $setting->auto_increment_prefix = e(Input::get('auto_increment_prefix')); $setting->auto_increment_assets = e(Input::get('auto_increment_assets', '0')); + $setting->alert_interval = e(Input::get('alert_interval')); + $setting->alert_threshold = e(Input::get('alert_threshold')); + $setting->labels_per_page = e(Input::get('labels_per_page')); $setting->labels_width = e(Input::get('labels_width')); diff --git a/database/migrations/2016_05_19_191146_add_alter_interval.php b/database/migrations/2016_05_19_191146_add_alter_interval.php new file mode 100644 index 0000000000..4f218b1cee --- /dev/null +++ b/database/migrations/2016_05_19_191146_add_alter_interval.php @@ -0,0 +1,33 @@ +integer('alert_interval')->nullable()->default('30'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings', function ($table) { + $table->dropColumn( + 'alert_interval' + ); + }); + } +} diff --git a/database/migrations/2016_05_19_192226_add_inventory_threshold.php b/database/migrations/2016_05_19_192226_add_inventory_threshold.php new file mode 100644 index 0000000000..35f4e9ddfe --- /dev/null +++ b/database/migrations/2016_05_19_192226_add_inventory_threshold.php @@ -0,0 +1,33 @@ +integer('alert_threshold')->nullable()->default('5'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings', function ($table) { + $table->dropColumn( + 'alert_threshold' + ); + }); + } +} diff --git a/resources/lang/en/admin/settings/general.php b/resources/lang/en/admin/settings/general.php index b190db7773..41883acd5f 100644 --- a/resources/lang/en/admin/settings/general.php +++ b/resources/lang/en/admin/settings/general.php @@ -2,7 +2,9 @@ return array( 'alert_email' => 'Send alerts to', - 'alerts_enabled' => 'Alerts enabled', + 'alerts_enabled' => 'Alerts Enabled', + 'alert_interval' => 'Expiring Alerts Threshold (in days)', + 'alert_inv_threshold' => 'Inventory Alert Threshold', 'asset_ids' => 'Asset IDs', 'auto_increment_assets' => 'Generate auto-incrementing asset IDs', 'auto_increment_prefix' => 'Prefix (optional)', diff --git a/resources/views/settings/edit.blade.php b/resources/views/settings/edit.blade.php index 7b510d7f52..ee481076f5 100755 --- a/resources/views/settings/edit.blade.php +++ b/resources/views/settings/edit.blade.php @@ -153,6 +153,31 @@ + +
+
+ {{ Form::label('alert_interval', trans('admin/settings/general.alert_interval')) }} +
+
+ {{ Form::text('alert_interval', Input::old('alert_interval', $setting->alert_interval), array('class' => 'form-control','placeholder' => '30', 'maxlength'=>'3', 'style'=>'width: 60px;')) }} + {!! $errors->first('alert_interval', ':message') !!} +
+
+ + +
+
+ {{ Form::label('alert_threshold', trans('admin/settings/general.alert_inv_threshold')) }} +
+
+ {{ Form::text('alert_threshold', Input::old('alert_threshold', $setting->alert_threshold), array('class' => 'form-control','placeholder' => '5', 'maxlength'=>'3', 'style'=>'width: 60px;')) }} + {!! $errors->first('alert_threshold', ':message') !!} +
+
+ + + +