mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-25 13:44:06 -08:00
f994af16da
sumFormatterQuantity takes the same input as sumFormatter but instead of calculating the specified columns total it calculates the total purchase cost of an item based upon its quantity. Also updated affected pressenters to use this formatter. Signed-off-by: Computroniks <mnickson@sidingsmedia.com>
288 lines
9.3 KiB
PHP
288 lines
9.3 KiB
PHP
<?php
|
|
|
|
namespace App\Presenters;
|
|
|
|
/**
|
|
* Class LicensePresenter
|
|
* @package App\Presenters
|
|
*/
|
|
class LicensePresenter extends Presenter
|
|
{
|
|
/**
|
|
* Json Column Layout for bootstrap table
|
|
* @return string
|
|
*/
|
|
public static function dataTableLayout()
|
|
{
|
|
$layout = [
|
|
[
|
|
"field" => "id",
|
|
"searchable" => false,
|
|
"sortable" => true,
|
|
"switchable" => true,
|
|
"title" => trans('general.id'),
|
|
"visible" => false
|
|
], [
|
|
"field" => "company",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"switchable" => true,
|
|
"title" => trans('admin/companies/table.title'),
|
|
"visible" => false,
|
|
"formatter" => "companiesLinkObjFormatter"
|
|
], [
|
|
"field" => "name",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"title" => trans('admin/licenses/table.title'),
|
|
"formatter" => "licensesLinkFormatter"
|
|
], [
|
|
"field" => "product_key",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"title" => trans('admin/licenses/form.license_key'),
|
|
"formatter" => "licensesLinkFormatter"
|
|
], [
|
|
"field" => "expiration_date",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"title" => trans('admin/licenses/form.expiration'),
|
|
'formatter' => 'dateDisplayFormatter'
|
|
], [
|
|
"field" => "license_email",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"title" => trans('admin/licenses/form.to_email')
|
|
], [
|
|
"field" => "license_name",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"title" => trans('admin/licenses/form.to_name'),
|
|
], [
|
|
"field" => "category",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"switchable" => true,
|
|
"title" => trans('general.category'),
|
|
"visible" => false,
|
|
"formatter" => "categoriesLinkObjFormatter"
|
|
], [
|
|
"field" => "supplier",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"switchable" => true,
|
|
"title" => trans('general.supplier'),
|
|
"visible" => false,
|
|
"formatter" => "suppliersLinkObjFormatter"
|
|
], [
|
|
"field" => "manufacturer",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"title" => trans('general.manufacturer'),
|
|
"formatter" => "manufacturersLinkObjFormatter",
|
|
], [
|
|
"field" => "seats",
|
|
"searchable" => false,
|
|
"sortable" => true,
|
|
"title" => trans('admin/accessories/general.total'),
|
|
], [
|
|
"field" => "free_seats_count",
|
|
"searchable" => false,
|
|
"sortable" => true,
|
|
"title" => trans('admin/accessories/general.remaining'),
|
|
], [
|
|
"field" => "purchase_date",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('general.purchase_date'),
|
|
'formatter' => 'dateDisplayFormatter'
|
|
],
|
|
[
|
|
"field" => "termination_date",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('admin/licenses/form.termination_date'),
|
|
'formatter' => 'dateDisplayFormatter'
|
|
],
|
|
[
|
|
"field" => "depreciation",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"switchable" => true,
|
|
"title" => trans('admin/hardware/form.depreciation'),
|
|
"visible" => false,
|
|
"formatter" => "depreciationsLinkObjFormatter",
|
|
],
|
|
|
|
[
|
|
"field" => "maintained",
|
|
"searchable" => false,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('admin/licenses/form.maintained'),
|
|
"formatter" => "trueFalseFormatter"
|
|
], [
|
|
"field" => "reassignable",
|
|
"searchable" => false,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('admin/licenses/form.reassignable'),
|
|
"formatter" => "trueFalseFormatter"
|
|
],
|
|
[
|
|
"field" => "purchase_cost",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('general.purchase_cost'),
|
|
"footerFormatter" => 'sumFormatterQuantity',
|
|
], [
|
|
"field" => "purchase_order",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('admin/licenses/form.purchase_order'),
|
|
], [
|
|
"field" => "order_number",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('general.order_number'),
|
|
], [
|
|
"field" => "notes",
|
|
"searchable" => true,
|
|
"sortable" => true,
|
|
"visible" => false,
|
|
"title" => trans('general.notes'),
|
|
"formatter" => "notesFormatter"
|
|
]
|
|
];
|
|
|
|
$layout[] = [
|
|
"field" => "checkincheckout",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"switchable" => true,
|
|
"title" => trans('general.checkin').'/'.trans('general.checkout'),
|
|
"visible" => true,
|
|
"formatter" => "licensesInOutFormatter",
|
|
];
|
|
|
|
$layout[] = [
|
|
"field" => "actions",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"switchable" => false,
|
|
"title" => trans('table.actions'),
|
|
"formatter" => "licensesActionsFormatter",
|
|
];
|
|
|
|
|
|
return json_encode($layout);
|
|
}
|
|
|
|
|
|
/**
|
|
* Json Column Layout for bootstrap table
|
|
* @return string
|
|
*/
|
|
public static function dataTableLayoutSeats()
|
|
{
|
|
$layout = [
|
|
[
|
|
"field" => "name",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"sorter" => "numericOnly",
|
|
"switchable" => true,
|
|
"title" => trans('admin/licenses/general.seat'),
|
|
"visible" => true,
|
|
], [
|
|
"field" => "assigned_user",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"switchable" => true,
|
|
"title" => trans('admin/licenses/general.user'),
|
|
"visible" => true,
|
|
"formatter" => "usersLinkObjFormatter"
|
|
], [
|
|
"field" => "department",
|
|
"searchable" => false,
|
|
"sortable" => true,
|
|
"switchable" => true,
|
|
"title" => trans('general.department'),
|
|
"visible" => false,
|
|
"formatter" => "departmentNameLinkFormatter"
|
|
],
|
|
[
|
|
"field" => "assigned_asset",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"switchable" => true,
|
|
"title" => trans('admin/licenses/form.asset'),
|
|
"visible" => true,
|
|
"formatter" => "hardwareLinkObjFormatter"
|
|
], [
|
|
"field" => "location",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"switchable" => true,
|
|
"title" => trans('general.location'),
|
|
"visible" => true,
|
|
"formatter" => "locationsLinkObjFormatter"
|
|
],
|
|
[
|
|
"field" => "checkincheckout",
|
|
"searchable" => false,
|
|
"sortable" => false,
|
|
"switchable" => true,
|
|
"title" => trans('general.checkin').'/'.trans('general.checkout'),
|
|
"visible" => true,
|
|
"formatter" => "licenseSeatInOutFormatter"
|
|
]
|
|
];
|
|
|
|
return json_encode($layout);
|
|
}
|
|
|
|
|
|
/**
|
|
* Link to this licenses Name
|
|
* @return string
|
|
*/
|
|
public function nameUrl()
|
|
{
|
|
return (string)link_to_route('licenses.show', $this->name, $this->id);
|
|
}
|
|
|
|
/**
|
|
* Link to this licenses Name
|
|
* @return string
|
|
*/
|
|
public function fullName()
|
|
{
|
|
return $this->name;
|
|
}
|
|
|
|
|
|
/**
|
|
* Link to this licenses serial
|
|
* @return string
|
|
*/
|
|
public function serialUrl()
|
|
{
|
|
return (string) link_to('/licenses/'.$this->id, mb_strimwidth($this->serial, 0, 50, "..."));
|
|
}
|
|
|
|
/**
|
|
* Url to view this item.
|
|
* @return string
|
|
*/
|
|
public function viewUrl()
|
|
{
|
|
return route('licenses.show', $this->id);
|
|
}
|
|
}
|