diff --git a/app/Http/Transformers/AccessoriesTransformer.php b/app/Http/Transformers/AccessoriesTransformer.php index 491871e122..c7af414d08 100644 --- a/app/Http/Transformers/AccessoriesTransformer.php +++ b/app/Http/Transformers/AccessoriesTransformer.php @@ -36,6 +36,7 @@ class AccessoriesTransformer 'qty' => ($accessory->qty) ? (int) $accessory->qty : null, 'purchase_date' => ($accessory->purchase_date) ? Helper::getFormattedDateObject($accessory->purchase_date, 'date') : null, 'purchase_cost' => Helper::formatCurrencyOutput($accessory->purchase_cost), + 'total_cost' => Helper::formatCurrencyOutput($accessory->totalCostSum()), 'order_number' => ($accessory->order_number) ? e($accessory->order_number) : null, 'min_qty' => ($accessory->min_amt) ? (int) $accessory->min_amt : null, // Legacy - should phase out - replaced by below, for the bootstrap table formatter 'min_amt' => ($accessory->min_amt) ? (int) $accessory->min_amt : null, diff --git a/app/Http/Transformers/ComponentsTransformer.php b/app/Http/Transformers/ComponentsTransformer.php index f7f8c337bf..82e4448277 100644 --- a/app/Http/Transformers/ComponentsTransformer.php +++ b/app/Http/Transformers/ComponentsTransformer.php @@ -43,6 +43,7 @@ class ComponentsTransformer 'order_number' => e($component->order_number), 'purchase_date' => Helper::getFormattedDateObject($component->purchase_date, 'date'), 'purchase_cost' => Helper::formatCurrencyOutput($component->purchase_cost), + 'total_cost' => Helper::formatCurrencyOutput($component->totalCostSum()), 'remaining' => (int) $component->numRemaining(), 'company' => ($component->company) ? [ 'id' => (int) $component->company->id, diff --git a/app/Http/Transformers/ConsumablesTransformer.php b/app/Http/Transformers/ConsumablesTransformer.php index 4c7dbf9cc5..2739b3b8f0 100644 --- a/app/Http/Transformers/ConsumablesTransformer.php +++ b/app/Http/Transformers/ConsumablesTransformer.php @@ -37,6 +37,7 @@ class ConsumablesTransformer 'remaining' => $consumable->numRemaining(), 'order_number' => e($consumable->order_number), 'purchase_cost' => Helper::formatCurrencyOutput($consumable->purchase_cost), + 'total_cost' => Helper::formatCurrencyOutput($consumable->totalCostSum()), 'purchase_date' => Helper::getFormattedDateObject($consumable->purchase_date, 'date'), 'qty' => (int) $consumable->qty, 'notes' => ($consumable->notes) ? Helper::parseEscapedMarkedownInline($consumable->notes) : null, diff --git a/app/Models/Accessory.php b/app/Models/Accessory.php index 29984a1c2b..8efd68ef7e 100755 --- a/app/Models/Accessory.php +++ b/app/Models/Accessory.php @@ -357,6 +357,10 @@ class Accessory extends SnipeModel $accessory_checkout->limit(1)->delete(); } + public function totalCostSum() { + + return $this->purchase_cost !== null ? $this->qty * $this->purchase_cost : null; + } /** * ----------------------------------------------- diff --git a/app/Models/Component.php b/app/Models/Component.php index ddcb3ad575..6352981418 100644 --- a/app/Models/Component.php +++ b/app/Models/Component.php @@ -288,7 +288,10 @@ class Component extends SnipeModel return $this->qty - $this->numCheckedOut(); } + public function totalCostSum() { + return $this->purchase_cost !== null ? $this->qty * $this->purchase_cost : null; + } /** * ----------------------------------------------- * BEGIN MUTATORS diff --git a/app/Models/Consumable.php b/app/Models/Consumable.php index 8c6e43c490..806b10d317 100644 --- a/app/Models/Consumable.php +++ b/app/Models/Consumable.php @@ -312,7 +312,10 @@ class Consumable extends SnipeModel return $remaining; } + public function totalCostSum() { + return $this->purchase_cost !== null ? $this->qty * $this->purchase_cost : null; + } /** * ----------------------------------------------- * BEGIN MUTATORS diff --git a/app/Presenters/AccessoryPresenter.php b/app/Presenters/AccessoryPresenter.php index 6d04e18b6a..d4aaa768c3 100644 --- a/app/Presenters/AccessoryPresenter.php +++ b/app/Presenters/AccessoryPresenter.php @@ -121,6 +121,12 @@ class AccessoryPresenter extends Presenter 'searchable' => true, 'sortable' => true, 'title' => trans('general.unit_cost'), + 'class' => 'text-right text-padding-number-cell', + ], [ + 'field' => 'total_cost', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.total_cost'), 'footerFormatter' => 'sumFormatterQuantity', 'class' => 'text-right text-padding-number-cell', ], [ diff --git a/app/Presenters/ComponentPresenter.php b/app/Presenters/ComponentPresenter.php index be15144623..5e33d72d1c 100644 --- a/app/Presenters/ComponentPresenter.php +++ b/app/Presenters/ComponentPresenter.php @@ -79,6 +79,25 @@ class ComponentPresenter extends Presenter 'title' => trans('general.manufacturer'), 'visible' => false, 'formatter' => 'manufacturersLinkObjFormatter', + ], [ + 'field' => 'location', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.location'), + 'formatter' => 'locationsLinkObjFormatter', + ], [ + 'field' => 'order_number', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.order_number'), + 'visible' => true, + ], [ + 'field' => 'purchase_date', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.purchase_date'), + 'visible' => true, + 'formatter' => 'dateDisplayFormatter', ], [ 'field' => 'min_amt', 'searchable' => false, @@ -103,33 +122,20 @@ class ComponentPresenter extends Presenter 'visible' => true, 'class' => 'text-right text-padding-number-cell', 'footerFormatter' => 'qtySumFormatter', - ], [ - 'field' => 'location', - 'searchable' => true, - 'sortable' => true, - 'title' => trans('general.location'), - 'formatter' => 'locationsLinkObjFormatter', - ], [ - 'field' => 'order_number', - 'searchable' => true, - 'sortable' => true, - 'title' => trans('general.order_number'), - 'visible' => true, - ], [ - 'field' => 'purchase_date', - 'searchable' => true, - 'sortable' => true, - 'title' => trans('general.purchase_date'), - 'visible' => true, - 'formatter' => 'dateDisplayFormatter', ], [ 'field' => 'purchase_cost', 'searchable' => true, 'sortable' => true, 'title' => trans('general.unit_cost'), 'visible' => true, - 'footerFormatter' => 'sumFormatterQuantity', 'class' => 'text-right', + ], [ + 'field' => 'total_cost', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.total_cost'), + 'footerFormatter' => 'sumFormatterQuantity', + 'class' => 'text-right text-padding-number-cell', ], [ 'field' => 'notes', 'searchable' => true, diff --git a/app/Presenters/ConsumablePresenter.php b/app/Presenters/ConsumablePresenter.php index da167c0d2c..2b2eec5b2e 100644 --- a/app/Presenters/ConsumablePresenter.php +++ b/app/Presenters/ConsumablePresenter.php @@ -67,35 +67,6 @@ class ConsumablePresenter extends Presenter 'searchable' => true, 'sortable' => true, 'title' => trans('general.model_no'), - ], [ - 'field' => 'item_no', - 'searchable' => true, - 'sortable' => true, - 'title' => trans('admin/consumables/general.item_no'), - ], [ - 'field' => 'qty', - 'searchable' => false, - 'sortable' => true, - 'title' => trans('admin/components/general.total'), - 'visible' => true, - 'class' => 'text-right text-padding-number-cell', - 'footerFormatter' => 'qtySumFormatter', - ], [ - 'field' => 'remaining', - 'searchable' => false, - 'sortable' => true, - 'title' => trans('admin/components/general.remaining'), - 'visible' => true, - 'class' => 'text-right text-padding-number-cell', - 'footerFormatter' => 'qtySumFormatter', - ], [ - 'field' => 'min_amt', - 'searchable' => false, - 'sortable' => true, - 'title' => trans('general.min_amt'), - 'visible' => true, - 'formatter' => 'minAmtFormatter', - 'class' => 'text-right text-padding-number-cell', ], [ 'field' => 'location', 'searchable' => true, @@ -103,6 +74,12 @@ class ConsumablePresenter extends Presenter 'title' => trans('general.location'), 'formatter' => 'locationsLinkObjFormatter', ], [ + 'field' => 'item_no', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('admin/consumables/general.item_no'), + ], [ + 'field' => 'manufacturer', 'searchable' => true, 'sortable' => true, @@ -122,12 +99,42 @@ class ConsumablePresenter extends Presenter 'title' => trans('general.purchase_date'), 'visible' => true, 'formatter' => 'dateDisplayFormatter', + ], [ + 'field' => 'min_amt', + 'searchable' => false, + 'sortable' => true, + 'title' => trans('general.min_amt'), + 'visible' => true, + 'formatter' => 'minAmtFormatter', + 'class' => 'text-right text-padding-number-cell', + ], [ + 'field' => 'qty', + 'searchable' => false, + 'sortable' => true, + 'title' => trans('admin/components/general.total'), + 'visible' => true, + 'class' => 'text-right text-padding-number-cell', + 'footerFormatter' => 'qtySumFormatter', + ], [ + 'field' => 'remaining', + 'searchable' => false, + 'sortable' => true, + 'title' => trans('admin/components/general.remaining'), + 'visible' => true, + 'class' => 'text-right text-padding-number-cell', + 'footerFormatter' => 'qtySumFormatter', ], [ 'field' => 'purchase_cost', 'searchable' => true, 'sortable' => true, 'title' => trans('general.unit_cost'), 'visible' => true, + 'class' => 'text-right text-padding-number-cell', + ], [ + 'field' => 'total_cost', + 'searchable' => true, + 'sortable' => true, + 'title' => trans('general.total_cost'), 'footerFormatter' => 'sumFormatterQuantity', 'class' => 'text-right text-padding-number-cell', ], [ diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index b7c62a8aa7..61b7c9f809 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -309,6 +309,7 @@ return [ 'total_licenses' => 'total licenses', 'total_accessories' => 'total accessories', 'total_consumables' => 'total consumables', + 'total_cost' => 'Total Cost', 'type' => 'Type', 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', diff --git a/resources/views/accessories/view.blade.php b/resources/views/accessories/view.blade.php index e0f276e755..9851d46140 100644 --- a/resources/views/accessories/view.blade.php +++ b/resources/views/accessories/view.blade.php @@ -244,6 +244,18 @@ @endif + @if ($accessory->purchase_cost) +
+
+ + {{ trans('general.total_cost') }} + +
+
+ {{ Helper::formatCurrencyOutput($accessory->totalCostSum()) }} +
+
+ @endif
diff --git a/resources/views/components/view.blade.php b/resources/views/components/view.blade.php index 6c0d8840ad..dfce30e796 100644 --- a/resources/views/components/view.blade.php +++ b/resources/views/components/view.blade.php @@ -207,6 +207,13 @@ {{ Helper::formatCurrencyOutput($component->purchase_cost) }}
@endif + @if ($component->purchase_cost) +
{{ trans('general.total_cost') }}: + {{ $snipeSettings->default_currency }} + + {{ Helper::formatCurrencyOutput($component->totalCostSum()) }}
+ @endif + @if ($component->order_number)
{{ trans('general.order_number') }}: {{ $component->order_number }}
diff --git a/resources/views/consumables/view.blade.php b/resources/views/consumables/view.blade.php index 376a4ddfed..a38ecaf7a4 100644 --- a/resources/views/consumables/view.blade.php +++ b/resources/views/consumables/view.blade.php @@ -281,6 +281,18 @@
@endif + @if ($consumable->purchase_cost) +
+
+ {{ trans('general.total_cost') }} +
+
+ {{ $snipeSettings->default_currency }} + {{ Helper::formatCurrencyOutput($consumable->totalCostSum()) }} +
+
+ @endif + @if ($consumable->order_number)
diff --git a/resources/views/models/view.blade.php b/resources/views/models/view.blade.php index 19101cb568..359b947efa 100755 --- a/resources/views/models/view.blade.php +++ b/resources/views/models/view.blade.php @@ -90,6 +90,7 @@ data-cookie-id-table="assetListingTable" data-id-table="assetListingTable" data-side-pagination="server" + data-show-footer="true" data-toolbar="#assetsBulkEditToolbar" data-bulk-button-id="#bulkAssetEditButton" data-bulk-form-id="#assetsBulkForm"