Skip to content

Commit

Permalink
Fix more number_format madness.
Browse files Browse the repository at this point in the history
This does two main things:
1) The importer now imports as numbers, not parsed strings.  This allows
is to format values on output instead of input, which is what was
happening in most places.

2) Add a Helper::parseCurrencyString method and port everything to use
this.  This checks to see if the value is numeric or empty, and returns
the appropriate value in all cases.  Should fix all known occurances of
number_format expections.
  • Loading branch information
dmeltzer committed Aug 17, 2016
1 parent 44821b9 commit 0c912bc
Show file tree
Hide file tree
Showing 20 changed files with 51 additions and 43 deletions.
11 changes: 11 additions & 0 deletions app/Helpers/Helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,17 @@ public static function parseEmailList($emails)
return array_walk($emails_array, 'trim_value');
}

public static function parseCurrencyString($cost)
{
// The importer has formatted number strings since v3, so the value might be a string, or an integer.
// If it's a number, format it as a string
if (is_numeric($cost)) {
return number_format($cost, 2, '.', '');
}
// It's already been parsed.
return $cost;
}

// This doesn't do anything yet
public static function trim_value(&$value)
{
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/AccessoriesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,7 @@ public function getDatatable(Request $request)
'min_amt' => e($accessory->min_amt),
'location' => ($accessory->location) ? e($accessory->location->name): '',
'purchase_date' => e($accessory->purchase_date),
'purchase_cost' => number_format($accessory->purchase_cost, 2),
'purchase_cost' => Helper::parseCurrencyString($accessory->purchase_cost),
'numRemaining' => $accessory->numRemaining(),
'actions' => $actions,
'companyName' => is_null($company) ? '' : e($company->name)
Expand Down
8 changes: 2 additions & 6 deletions app/Http/Controllers/AssetsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ public function postEdit(AssetRequest $request, $assetId = null)
}

if ($request->has('purchase_cost')) {
$asset->purchase_cost = e(number_format($request->input('purchase_cost'), 2, '.', ''));
$asset->purchase_cost = e(Helper::parseCurrencyString($request->input('purchase_cost')));
} else {
$asset->purchase_cost = null;
}
Expand Down Expand Up @@ -1741,11 +1741,7 @@ public function getDatatable($status = null)
}
}

// Lots going on here. Importer has parsed numbers before importing, so we need to check and see if it's a number before trying to parse.
$purchase_cost = $asset->purchase_cost ?: '';
if (is_numeric($purchase_cost)) {
$purchase_cost = number_format($purchase_cost, 2);
}
$purchase_cost = Helper::parseCurrencyString($asset->purchase_cost);

$row = array(
'checkbox' =>'<div class="text-center"><input type="checkbox" name="edit_asset['.$asset->id.']" class="one_required"></div>',
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/ComponentsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ public function getDatatable()
'category' => ($component->category) ? e($component->category->name) : 'Missing category',
'order_number' => e($component->order_number),
'purchase_date' => e($component->purchase_date),
'purchase_cost' => ($component->purchase_cost!='') ? number_format($component->purchase_cost, 2): '' ,
'purchase_cost' => Helper::parseCurrencyString($component->purchase_cost),
'numRemaining' => $component->numRemaining(),
'actions' => $actions,
'companyName' => is_null($company) ? '' : e($company->name),
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/ConsumablesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ public function getDatatable()
'category' => ($consumable->category) ? e($consumable->category->name) : 'Missing category',
'order_number' => e($consumable->order_number),
'purchase_date' => e($consumable->purchase_date),
'purchase_cost' => ($consumable->purchase_cost!='') ? number_format($consumable->purchase_cost, 2): '' ,
'purchase_cost' => Helper::parseCurrencyString($consumable->purchase_cost),
'numRemaining' => $consumable->numRemaining(),
'actions' => $actions,
'companyName' => is_null($company) ? '' : e($company->name),
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/LicensesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -1015,7 +1015,7 @@ public function getDatatable()
'license_email' => e($license->license_email),
'purchase_date' => ($license->purchase_date) ? $license->purchase_date : '',
'expiration_date' => ($license->expiration_date) ? $license->expiration_date : '',
'purchase_cost' => ($license->purchase_cost) ? number_format($license->purchase_cost, 2) : '',
'purchase_cost' => Helper::parseCurrencyString($license->purchase_cost),
'purchase_order' => ($license->purchase_order) ? e($license->purchase_order) : '',
'order_number' => ($license->order_number) ? e($license->order_number) : '',
'notes' => ($license->notes) ? e($license->notes) : '',
Expand Down
37 changes: 19 additions & 18 deletions app/Http/Controllers/ReportsController.php
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
<?php
namespace App\Http\Controllers;

use App\Helpers\Helper;
use App\Models\Accessory;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\AssetMaintenance;
use Carbon\Carbon;
use App\Models\AssetModel;
use App\Models\Company;
use App\Models\CustomField;
use App\Models\License;
use App\Models\Location;
use App\Models\Setting;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\View;
use Input;
use League\Csv\Reader;
use App\Models\License;
use App\Models\Location;
use App\Models\AssetModel;
use App\Models\CustomField;
use Redirect;
use App\Models\Setting;
use App\Models\User;

/**
* This controller handles all actions related to Reports for
Expand Down Expand Up @@ -166,7 +167,7 @@ public function exportAssetReport()
$row[] = '';
}
$row[] = $asset->purchase_date;
$row[] = '"' . number_format($asset->purchase_cost, 2) . '"';
$row[] = '"' . Helper::parsePurchasedCost($asset->purchase_cost) . '"';
if ($asset->order_number) {
$row[] = e($asset->order_number);
} else {
Expand Down Expand Up @@ -308,9 +309,9 @@ public function exportDeprecationReport()
}

$row[] = $asset->purchase_date;
$row[] = $currency . number_format($asset->purchase_cost, 2);
$row[] = $currency . number_format($asset->getDepreciatedValue(), 2);
$row[] = $currency . number_format(( $asset->purchase_cost - $asset->getDepreciatedValue() ), 2);
$row[] = $currency . Helper::parseCurrencyString($asset->purchase_cost);
$row[] = $currency . Helper::parseCurrencyString($asset->getDepreciatedValue());
$row[] = $currency . Helper::parseCurrencyString(( $asset->purchase_cost - $asset->getDepreciatedValue() ));
$csv->insertOne($row);
}

Expand Down Expand Up @@ -392,7 +393,7 @@ public function exportLicenseReport()
$row[] = $license->remaincount();
$row[] = $license->expiration_date;
$row[] = $license->purchase_date;
$row[] = '"' . number_format($license->purchase_cost, 2) . '"';
$row[] = '"' . Helper::parseCurrencyString($license->purchase_cost) . '"';

$rows[] = implode($row, ',');
}
Expand All @@ -416,7 +417,7 @@ public function exportLicenseReport()
public function getCustomReport()
{
$customfields = CustomField::get();
return View::make('reports/custom')->with('customfields',$customfields);
return View::make('reports/custom')->with('customfields', $customfields);
}

/**
Expand Down Expand Up @@ -528,7 +529,7 @@ public function postCustom()
$row[] = e($asset->purchase_date);
}
if (e(Input::get('purchase_cost')) == '1' && ( e(Input::get('depreciation')) != '1' )) {
$row[] = '"' . number_format($asset->purchase_cost, 2) . '"';
$row[] = '"' . Helper::parseCurrencyString($asset->purchase_cost) . '"';
}
if (e(Input::get('order')) == '1') {
if ($asset->order_number) {
Expand Down Expand Up @@ -605,9 +606,9 @@ public function postCustom()
}
if (e(Input::get('depreciation')) == '1') {
$depreciation = $asset->getDepreciatedValue();
$row[] = '"' . number_format($asset->purchase_cost, 2) . '"';
$row[] = '"' . number_format($depreciation, 2) . '"';
$row[] = '"' . number_format($asset->purchase_cost - $depreciation, 2) . '"';
$row[] = '"' . Helper::parseCurrencyString($asset->purchase_cost) . '"';
$row[] = '"' . Helper::parseCurrencyString($depreciation) . '"';
$row[] = '"' . Helper::parseCurrencyString($asset->purchase_cost) . '"';
}

foreach ($customfields as $customfield) {
Expand Down Expand Up @@ -698,7 +699,7 @@ public function exportAssetMaintenancesReport()
$improvementTime = intval($assetMaintenance->asset_maintenance_time);
}
$row[] = $improvementTime;
$row[] = trans('general.currency') . number_format($assetMaintenance->cost, 2);
$row[] = trans('general.currency') . Helper::parseCurrencyString($assetMaintenance->cost);
$rows[] = implode($row, ',');
}

Expand Down
2 changes: 1 addition & 1 deletion resources/views/accessories/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@
<span class="input-group-addon">
{{ \App\Models\Setting::first()->default_currency }}
</span>
<input class="col-md-3 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', number_format($accessory->purchase_cost,2)) }}" />
<input class="col-md-3 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', \App\Helpers\Helper::parseCurrencyString($accessory->purchase_cost)) }}" />
{!! $errors->first('purchase_cost', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/asset_maintenances/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@
<div class="col-md-2">
<div class="input-group">
<span class="input-group-addon">{{ \App\Models\Setting::first()->default_currency }}</span>
<input class="col-md-2 form-control" type="text" name="cost" id="cost" value="{{ Input::old('cost', number_format($assetMaintenance->cost,2)) }}" />
<input class="col-md-2 form-control" type="text" name="cost" id="cost" value="{{ Input::old('cost', \App\Helpers\Helper::parseCurrencyString($assetMaintenance->cost)) }}" />
{!! $errors->first('cost', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/components/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@
<span class="input-group-addon">
{{ \App\Models\Setting::first()->default_currency }}
</span>
<input class="col-md-2 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', number_format($component->purchase_cost,2)) }}" />
<input class="col-md-2 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', \App\Helpers\Helper::parseCurrencyString($component->purchase_cost)) }}" />
{!! $errors->first('purchase_cost', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/components/view.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class="table table-striped"
<div class="col-md-12" style="padding-bottom: 5px;"><strong>{{ trans('admin/components/general.cost') }}:</strong>
{{ \App\Models\Setting::first()->default_currency }}

{{ number_format($component->purchase_cost,2) }} </div>
{{ \App\Helpers\Helper::parseCurrencyString($component->purchase_cost) }} </div>
@endif

@if ($component->order_number)
Expand Down
2 changes: 1 addition & 1 deletion resources/views/consumables/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
<span class="input-group-addon">
{{ \App\Models\Setting::first()->default_currency }}
</span>
<input class="col-md-2 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', number_format($consumable->purchase_cost,2)) }}" />
<input class="col-md-2 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', \App\Helpers\Helper::parseCurrencyString($consumable->purchase_cost)) }}" />
{!! $errors->first('purchase_cost', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/consumables/view.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class="table table-striped"
<div class="col-md-12" style="padding-bottom: 5px;"><strong>{{ trans('admin/consumables/general.cost') }}:</strong>
{{ \App\Models\Setting::first()->default_currency }}

{{ number_format($consumable->purchase_cost,2) }} </div>
{{ \App\Helpers\Helper::parseCurrencyString($consumable->purchase_cost) }} </div>
@endif

@if ($consumable->item_no)
Expand Down
2 changes: 1 addition & 1 deletion resources/views/hardware/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@


</span>
<input class="col-md-2 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', number_format($asset->purchase_cost,2, '.', '')) }}" />
<input class="col-md-2 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', \App\Helpers\Helper::parseCurrencyString($asset->purchase_cost)) }}" />
{!! $errors->first('purchase_cost', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/hardware/view.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
@else
{{ \App\Models\Setting::first()->default_currency }}
@endif
{{ number_format($asset->purchase_cost,2) }}
{{ \App\Helpers\Helper::parseCurrencyString($asset->purchase_cost)}}

@if ($asset->order_number)
(Order #{{ $asset->order_number }})
Expand Down
2 changes: 1 addition & 1 deletion resources/views/licenses/edit.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@
<div class="col-md-3">
<div class="input-group">
<span class="input-group-addon">{{ \App\Models\Setting::first()->default_currency }}</span>
<input class="col-md-3 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', number_format($license->purchase_cost,2)) }}" />
<input class="col-md-3 form-control" type="text" name="purchase_cost" id="purchase_cost" value="{{ Input::old('purchase_cost', \App\Helpers\Helper::parseCurrencyString($license->purchase_cost)) }}" />
{!! $errors->first('purchase_cost', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/licenses/view.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@
</td>
<td>
{{ \App\Models\Setting::first()->default_currency }}
{{ number_format($license->purchase_cost,2) }}
{{ \App\Helpers\Helper::parseCurrencyString($license->purchase_cost) }}
</td>
</tr>
@endif
Expand Down
2 changes: 1 addition & 1 deletion resources/views/reports/asset.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class="table table-striped"
</td>
<td>{{ $asset->purchase_date }}</td>
<td class="align-right">{{ $settings->default_currency }}
{{ number_format($asset->purchase_cost) }}
{{ \App\Helpers\Helper::parseCurrencyString($asset->purchase_cost) }}
</td>
<td>
@if ($asset->order_number)
Expand Down
6 changes: 3 additions & 3 deletions resources/views/reports/depreciation.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,23 +111,23 @@ class="table table-striped table-bordered table-compact"
@else
{{ \App\Models\Setting::first()->default_currency }}
@endif
{{ number_format($asset->purchase_cost) }}</td>
{{ \App\Helpers\Helper::parseCurrencyString($asset->purchase_cost) }}</td>
<td class="align-right">
@if ($asset->assetloc )
{{ $asset->assetloc->currency }}
@else
{{ \App\Models\Setting::first()->default_currency }}
@endif

{{ number_format($asset->getDepreciatedValue()) }}</td>
{{ \App\Helpers\Helper::parseCurrencyString($asset->getDepreciatedValue()) }}</td>
<td class="align-right">
@if ($asset->assetloc)
{{ $asset->assetloc->currency }}
@else
{{ \App\Models\Setting::first()->default_currency }}
@endif

-{{ number_format(($asset->purchase_cost - $asset->getDepreciatedValue())) }}</td>
-{{ \App\Helpers\Helper::parseCurrencyString(($asset->purchase_cost - $asset->getDepreciatedValue())) }}</td>
@else
<td></td>
<td></td>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/reports/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
@if ($asset->purchase_cost > 0)
<td class="align-right">
{{ \App\Models\Setting::first()->default_currency }}
{{ number_format($asset->purchase_cost) }}
{{ \App\Helpers\Helper::parseCurrencyString($asset->purchase_cost) }}
</td>
<td class="align-right">
{{ \App\Models\Setting::first()->default_currency }}
Expand Down

0 comments on commit 0c912bc

Please sign in to comment.