diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index d331ea36f5..16545e4a79 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -403,6 +403,19 @@ class Helper */ public static function ParseFloat($floatString) { + /******* + * + * WARNING: This does conversions based on *locale* - a Unix-ey-like thing. + * + * Everything else in the system tends to convert based on the Snipe-IT settings + * + * So it's very likely this is *not* what you want - instead look for the new + * + * ParseCurrency($currencyString) + * + * Which should be directly below here + * + */ $LocaleInfo = localeconv(); $floatString = str_replace(",", "", $floatString); $floatString = str_replace($LocaleInfo["decimal_point"], ".", $floatString); @@ -416,6 +429,26 @@ class Helper $floatString = str_replace($currencySymbol, '', $floatString); return floatval($floatString); } + + /** + * Format currency using comma or period for thousands, and period or comma for decimal, based on settings. + * + * @author [B. Wetherington] [] + * @since [v5.2] + * @return Float + */ + public static function ParseCurrency($currencyString) { + $without_currency = str_replace(Setting::getSettings()->default_currency, '', $currencyString); //generally shouldn't come up, since we don't do this in fields, but just in case it does... + if(Setting::getSettings()->digit_separator=='1.234,56') { + //EU format + $without_thousands = str_replace('.', '', $without_currency); + $corrected_decimal = str_replace(',', '.', $without_thousands); + } else { + $without_thousands = str_replace(',', '', $without_currency); + $corrected_decimal = $without_thousands; // decimal is already OK + } + return floatval($corrected_decimal); + } /** * Get the list of status labels in an array to make a dropdown menu diff --git a/app/Http/Controllers/Accessories/AccessoriesController.php b/app/Http/Controllers/Accessories/AccessoriesController.php index a96859d928..fcfe897005 100755 --- a/app/Http/Controllers/Accessories/AccessoriesController.php +++ b/app/Http/Controllers/Accessories/AccessoriesController.php @@ -74,7 +74,7 @@ class AccessoriesController extends Controller $accessory->manufacturer_id = request('manufacturer_id'); $accessory->model_number = request('model_number'); $accessory->purchase_date = request('purchase_date'); - $accessory->purchase_cost = Helper::ParseFloat(request('purchase_cost')); + $accessory->purchase_cost = Helper::ParseCurrency(request('purchase_cost')); $accessory->qty = request('qty'); $accessory->user_id = Auth::user()->id; $accessory->supplier_id = request('supplier_id'); @@ -137,7 +137,7 @@ class AccessoriesController extends Controller $accessory->order_number = request('order_number'); $accessory->model_number = request('model_number'); $accessory->purchase_date = request('purchase_date'); - $accessory->purchase_cost = request('purchase_cost'); + $accessory->purchase_cost = Helper::ParseCurrency(request('purchase_cost')); $accessory->qty = request('qty'); $accessory->supplier_id = request('supplier_id'); diff --git a/app/Http/Controllers/Api/AssetMaintenancesController.php b/app/Http/Controllers/Api/AssetMaintenancesController.php index 519c7c0737..50c9694607 100644 --- a/app/Http/Controllers/Api/AssetMaintenancesController.php +++ b/app/Http/Controllers/Api/AssetMaintenancesController.php @@ -105,7 +105,7 @@ class AssetMaintenancesController extends Controller $assetMaintenance = new AssetMaintenance(); $assetMaintenance->supplier_id = $request->input('supplier_id'); $assetMaintenance->is_warranty = $request->input('is_warranty'); - $assetMaintenance->cost = e($request->input('cost')); + $assetMaintenance->cost = Helper::ParseCurrency($request->input('cost')); $assetMaintenance->notes = e($request->input('notes')); $asset = Asset::find(e($request->input('asset_id'))); @@ -162,7 +162,7 @@ class AssetMaintenancesController extends Controller $assetMaintenance->supplier_id = e($request->input('supplier_id')); $assetMaintenance->is_warranty = e($request->input('is_warranty')); - $assetMaintenance->cost = Helper::ParseFloat(e($request->input('cost'))); + $assetMaintenance->cost = Helper::ParseCurrency($request->input('cost')); $assetMaintenance->notes = e($request->input('notes')); $asset = Asset::find(request('asset_id')); diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index 57f94fa107..5baaf60d8c 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -493,7 +493,7 @@ class AssetsController extends Controller $asset->depreciate = '0'; $asset->status_id = $request->get('status_id', 0); $asset->warranty_months = $request->get('warranty_months', null); - $asset->purchase_cost = Helper::ParseFloat($request->get('purchase_cost')); + $asset->purchase_cost = Helper::ParseCurrency($request->get('purchase_cost')); // this is the API's store method, so I don't know that I want to do this? Confusing. FIXME (or not?!) $asset->purchase_date = $request->get('purchase_date', null); $asset->assigned_to = $request->get('assigned_to', null); $asset->supplier_id = $request->get('supplier_id', 0); diff --git a/app/Http/Controllers/AssetMaintenancesController.php b/app/Http/Controllers/AssetMaintenancesController.php index c9fb3340ee..5700b5affb 100644 --- a/app/Http/Controllers/AssetMaintenancesController.php +++ b/app/Http/Controllers/AssetMaintenancesController.php @@ -100,7 +100,7 @@ class AssetMaintenancesController extends Controller $assetMaintenance = new AssetMaintenance(); $assetMaintenance->supplier_id = $request->input('supplier_id'); $assetMaintenance->is_warranty = $request->input('is_warranty'); - $assetMaintenance->cost = $request->input('cost'); + $assetMaintenance->cost = Helper::ParseCurrency($request->input('cost')); $assetMaintenance->notes = $request->input('notes'); $asset = Asset::find($request->input('asset_id')); @@ -211,7 +211,7 @@ class AssetMaintenancesController extends Controller $assetMaintenance->supplier_id = $request->input('supplier_id'); $assetMaintenance->is_warranty = $request->input('is_warranty'); - $assetMaintenance->cost = Helper::ParseFloat($request->input('cost')); + $assetMaintenance->cost = Helper::ParseCurrency($request->input('cost')); $assetMaintenance->notes = $request->input('notes'); $asset = Asset::find(request('asset_id')); diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 8fed678d40..94bfcb0f4c 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -138,7 +138,7 @@ class AssetsController extends Controller $asset->depreciate = '0'; $asset->status_id = request('status_id', 0); $asset->warranty_months = request('warranty_months', null); - $asset->purchase_cost = Helper::ParseFloat($request->get('purchase_cost')); + $asset->purchase_cost = Helper::ParseCurrency($request->get('purchase_cost')); $asset->purchase_date = request('purchase_date', null); $asset->assigned_to = request('assigned_to', null); $asset->supplier_id = request('supplier_id', 0); @@ -302,7 +302,7 @@ class AssetsController extends Controller $asset->status_id = $request->input('status_id', null); $asset->warranty_months = $request->input('warranty_months', null); - $asset->purchase_cost = Helper::ParseFloat($request->input('purchase_cost', null)); + $asset->purchase_cost = Helper::ParseCurrency($request->input('purchase_cost', null)); $asset->purchase_date = $request->input('purchase_date', null); $asset->supplier_id = $request->input('supplier_id', null); $asset->expected_checkin = $request->input('expected_checkin', null); diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index 1a6da89c96..0ba9999789 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -102,7 +102,7 @@ class BulkAssetsController extends Controller ->conditionallyAddItem('warranty_months'); if ($request->filled('purchase_cost')) { - $this->update_array['purchase_cost'] = Helper::ParseFloat($request->input('purchase_cost')); + $this->update_array['purchase_cost'] = Helper::ParseCurrency($request->input('purchase_cost')); } if ($request->filled('company_id')) { diff --git a/app/Http/Controllers/Components/ComponentsController.php b/app/Http/Controllers/Components/ComponentsController.php index 16dc081342..e5e731edc4 100644 --- a/app/Http/Controllers/Components/ComponentsController.php +++ b/app/Http/Controllers/Components/ComponentsController.php @@ -5,6 +5,7 @@ use App\Http\Controllers\Controller; use App\Http\Requests\ImageUploadRequest; use App\Models\Company; use App\Models\Component; +use App\Helpers\Helper; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\Storage; @@ -74,7 +75,7 @@ class ComponentsController extends Controller $component->min_amt = $request->input('min_amt', null); $component->serial = $request->input('serial', null); $component->purchase_date = $request->input('purchase_date', null); - $component->purchase_cost = $request->input('purchase_cost', null); + $component->purchase_cost = Helper::ParseCurrency($request->input('purchase_cost', null)); $component->qty = $request->input('qty'); $component->user_id = Auth::id(); @@ -144,7 +145,7 @@ class ComponentsController extends Controller $component->min_amt = $request->input('min_amt'); $component->serial = $request->input('serial'); $component->purchase_date = $request->input('purchase_date'); - $component->purchase_cost = request('purchase_cost'); + $component->purchase_cost = Helper::ParseCurrency(request('purchase_cost')); $component->qty = $request->input('qty'); $component = $request->handleImages($component); diff --git a/app/Http/Controllers/Consumables/ConsumablesController.php b/app/Http/Controllers/Consumables/ConsumablesController.php index 69987f1570..05e83a2a09 100644 --- a/app/Http/Controllers/Consumables/ConsumablesController.php +++ b/app/Http/Controllers/Consumables/ConsumablesController.php @@ -75,7 +75,7 @@ class ConsumablesController extends Controller $consumable->model_number = $request->input('model_number'); $consumable->item_no = $request->input('item_no'); $consumable->purchase_date = $request->input('purchase_date'); - $consumable->purchase_cost = Helper::ParseFloat($request->input('purchase_cost')); + $consumable->purchase_cost = Helper::ParseCurrency($request->input('purchase_cost')); $consumable->qty = $request->input('qty'); $consumable->user_id = Auth::id(); @@ -141,7 +141,7 @@ class ConsumablesController extends Controller $consumable->model_number = $request->input('model_number'); $consumable->item_no = $request->input('item_no'); $consumable->purchase_date = $request->input('purchase_date'); - $consumable->purchase_cost = Helper::ParseFloat($request->input('purchase_cost')); + $consumable->purchase_cost = Helper::ParseCurrency($request->input('purchase_cost')); $consumable->qty = Helper::ParseFloat($request->input('qty')); $consumable = $request->handleImages($consumable); diff --git a/app/Http/Controllers/Licenses/LicensesController.php b/app/Http/Controllers/Licenses/LicensesController.php index 428dfa4f4f..c13eb8d9e0 100755 --- a/app/Http/Controllers/Licenses/LicensesController.php +++ b/app/Http/Controllers/Licenses/LicensesController.php @@ -88,7 +88,7 @@ class LicensesController extends Controller $license->name = $request->input('name'); $license->notes = $request->input('notes'); $license->order_number = $request->input('order_number'); - $license->purchase_cost = $request->input('purchase_cost'); + $license->purchase_cost = Helper::ParseCurrency($request->input('purchase_cost')); $license->purchase_date = $request->input('purchase_date'); $license->purchase_order = $request->input('purchase_order'); $license->purchase_order = $request->input('purchase_order'); @@ -165,7 +165,7 @@ class LicensesController extends Controller $license->name = $request->input('name'); $license->notes = $request->input('notes'); $license->order_number = $request->input('order_number'); - $license->purchase_cost = $request->input('purchase_cost'); + $license->purchase_cost = Helper::ParseCurrency($request->input('purchase_cost')); $license->purchase_date = $request->input('purchase_date'); $license->purchase_order = $request->input('purchase_order'); $license->reassignable = $request->input('reassignable', 0); diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index a8c38d77ab..45806435e6 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -559,7 +559,7 @@ class ReportsController extends Controller foreach ($customfields as $customfield) { - if (e($request->input($customfield->db_column_name())) == '1') { + if ($request->input($customfield->db_column_name()) == '1') { $header[] = $customfield->name; } } diff --git a/app/Http/Transformers/LicensesTransformer.php b/app/Http/Transformers/LicensesTransformer.php index 48d5152688..ba58b4fb3d 100644 --- a/app/Http/Transformers/LicensesTransformer.php +++ b/app/Http/Transformers/LicensesTransformer.php @@ -31,7 +31,8 @@ class LicensesTransformer 'purchase_date' => Helper::getFormattedDateObject($license->purchase_date, 'date'), 'termination_date' => Helper::getFormattedDateObject($license->termination_date, 'date'), 'depreciation' => ($license->depreciation) ? ['id' => (int) $license->depreciation->id,'name'=> e($license->depreciation->name)] : null, - 'purchase_cost' => e($license->purchase_cost), + 'purchase_cost' => Helper::formatCurrencyOutput($license->purchase_cost), + 'purchase_cost_numeric' => $license->purchase_cost, 'notes' => e($license->notes), 'expiration_date' => Helper::getFormattedDateObject($license->expiration_date, 'date'), 'seats' => (int) $license->seats, diff --git a/config/app.php b/config/app.php index 55184884dc..555be910cc 100755 --- a/config/app.php +++ b/config/app.php @@ -407,6 +407,7 @@ return [ 'Google2FA' => PragmaRX\Google2FALaravel\Facade::class, 'Image' => Intervention\Image\ImageServiceProvider::class, 'Carbon' => Carbon\Carbon::class, + 'Helper' => App\Helpers\Helper::class, // makes it much easier to use 'Helper::blah' in blades (which is where we usually use this) ], diff --git a/resources/views/asset_maintenances/view.blade.php b/resources/views/asset_maintenances/view.blade.php index 13506eeb4b..cea5eb2c04 100644 --- a/resources/views/asset_maintenances/view.blade.php +++ b/resources/views/asset_maintenances/view.blade.php @@ -81,7 +81,7 @@ use Carbon\Carbon;
{{ trans('admin/asset_maintenances/form.cost') }}: - {{ sprintf( trans( 'general.currency' ) . '%01.2f', $assetMaintenance->cost) }} + {{ trans( 'general.currency' ) . Helper::formatCurrencyOutput($assetMaintenance->cost) }}
{{ trans('admin/asset_maintenances/form.is_warranty') }}: diff --git a/resources/views/hardware/qr-view.blade.php b/resources/views/hardware/qr-view.blade.php deleted file mode 100644 index 7b6d3eb83b..0000000000 --- a/resources/views/hardware/qr-view.blade.php +++ /dev/null @@ -1,447 +0,0 @@ -@extends('layouts/default') - -{{-- Page title --}} -@section('title') -{{ trans('admin/hardware/general.view') }} {{ $asset->asset_tag }} -@parent -@stop - -{{-- Page content --}} -@section('content') - -
-
-

- {{ trans('admin/hardware/general.view') }} - {{ $asset->asset_tag }} - @if ($asset->name) - ({{ $asset->name }}) - @endif -

- -
- -
-
-
- - - - - - -@stop diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index c5feb06c57..7caa1ef57c 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -874,7 +874,7 @@ {{ $component->name }} {{ $component->pivot->assigned_qty }} - {{ $component->purchase_cost }} each + {{ Helper::formatCurrencyOutput($component->purchase_cost) }} each purchase_cost *$component->pivot->assigned_qty) ?> @endif @@ -885,7 +885,7 @@ - {{ $totalCost }} + {{ Helper::formatCurrencyOutput($totalCost) }} diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index 3d92bacd34..3d90ff4d89 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -601,8 +601,8 @@ } if ("{{$snipeSettings->digit_separator}}" == "1.234,56") { // yank periods, change commas to periods - periodless = number.toString().replace("\.",""); - decimalfixed = periodless.replace(",","."); + periodless = number.toString().replace(/\./g,""); + decimalfixed = periodless.replace(/,/g,"."); } else { // yank commas, that's it. decimalfixed = number.toString().replace(",",""); diff --git a/resources/views/suppliers/view.blade.php b/resources/views/suppliers/view.blade.php index 3a86da7c5d..2e3c91103d 100755 --- a/resources/views/suppliers/view.blade.php +++ b/resources/views/suppliers/view.blade.php @@ -191,7 +191,7 @@ {{ $improvement->start_date }} {{ $improvement->completion_date }} {{ $improvement->is_warranty ? trans('admin/asset_maintenances/message.warranty') : trans('admin/asset_maintenances/message.not_warranty') }} - {{ sprintf( $snipeSettings->default_currency. '%01.2f', $improvement->cost) }} + {{ $snipeSettings->default_currency. ' '. Helper::formatCurrencyOutput($improvement->cost) }} cost; ?> @@ -207,7 +207,7 @@ - {{sprintf($snipeSettings->default_currency . '%01.2f', $totalCost)}} + {{ $snipeSettings->default_currency . ' '.Helper::formatCurrencyOutput($totalCost) }} diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index f94ec9e004..6d0dc79939 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -460,7 +460,7 @@ @endcan - {{ $license->purchase_cost }} + {{ Helper::formatCurrencyOutput($license->purchase_cost) }} {{ $license->purchase_order }} @@ -512,7 +512,7 @@ {!!$accessory->present()->nameUrl()!!} - {!! $accessory->purchase_cost !!} + {!! Helper::formatCurrencyOutput($accessory->purchase_cost) !!} @can('checkin', $accessory) @@ -558,7 +558,7 @@ {!! $consumable->present()->nameUrl() !!} - {!! $consumable->purchase_cost !!} + {!! Helper::formatCurrencyOutput($consumable->purchase_cost) !!} {{ $consumable->created_at }}