Added additional permissions for checkin/checkout buttons

This commit is contained in:
snipe 2017-03-11 12:14:10 -08:00
parent 00aa06882c
commit 8dbd9fb299
6 changed files with 147 additions and 3 deletions

View file

@ -42,11 +42,17 @@ class AccessoriesTransformer
$permissions_array['available_actions'] = [
'checkout' => Gate::allows('checkout', Accessory::class) ? true : false,
'checkin' => Gate::allows('checkin', Accessory::class) ? true : false,
'checkin' => false,
'update' => Gate::allows('update', Accessory::class) ? true : false,
'delete' => Gate::allows('delete', Accessory::class) ? true : false,
];
$permissions_array['user_can_checkout'] = false;
if ($accessory->numRemaining() > 0) {
$permissions_array['user_can_checkout'] = true;
}
$array += $permissions_array;
return $array;

View file

@ -49,7 +49,7 @@ class AssetsTransformer
'last_checkout' => Helper::getFormattedDateObject($asset->last_checkout, 'datetime'),
'expected_checkin' => Helper::getFormattedDateObject($asset->expected_checkin, 'date'),
'purchase_cost' => $asset->purchase_cost,
'can_checkout' => $asset->availableForCheckout(),
'user_can_checkout' => $asset->availableForCheckout(),
];

View file

@ -26,7 +26,7 @@ class ComponentsAssetsTransformer
'name' => e($asset->name),
'created_at' => $asset->created_at->format('Y-m-d'),
'qty' => $asset->components()->count(),
'can_checkout' => $asset->availableForCheckout(),
'user_can_checkout' => $asset->availableForCheckout(),
];
$permissions_array['available_actions'] = [
@ -36,6 +36,8 @@ class ComponentsAssetsTransformer
'delete' => Gate::allows('delete', Asset::class) ? true : false,
];
$array += $permissions_array;
if ($asset->model->fieldset) {

View file

@ -39,6 +39,12 @@ class ConsumablesTransformer
'updated_at' => Helper::getFormattedDateObject($consumable->updated_at, 'datetime'),
];
$permissions_array['user_can_checkout'] = false;
if ($consumable->numRemaining() > 0) {
$permissions_array['user_can_checkout'] = true;
}
$permissions_array['available_actions'] = [
'checkout' => Gate::allows('checkout', Consumable::class) ? true : false,
'checkin' => Gate::allows('checkin', Consumable::class) ? true : false,

View file

@ -102,6 +102,13 @@ class AccessoryPresenter extends Presenter
"sortable" => true,
"visible" => false,
"title" => trans('general.order_number'),
],[
"field" => "change",
"searchable" => false,
"sortable" => false,
"visible" => true,
"title" => trans('general.change'),
"formatter" => "accessoriesInOutFormatter",
], [
"field" => "actions",
"searchable" => false,

View file

@ -0,0 +1,123 @@
<?php
namespace App\Presenters;
/**
* Class ComponentPresenter
* @package App\Presenters
*/
class ConsumablePresenter 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('general.company'),
"visible" => false,
"formatter" => 'companiesLinkObjFormatter',
],
[
"field" => "name",
"searchable" => true,
"sortable" => true,
"title" => trans('general.name'),
"visible" => true,
"formatter" => 'componentsLinkFormatter',
], [
"field" => "category",
"searchable" => true,
"sortable" => true,
"title" => trans('general.category'),
"formatter" => "categoriesLinkObjFormatter"
],[
"field" => "item_no",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/consumables/general.item_no')
], [
"field" => "qty",
"searchable" => false,
"sortable" => false,
"title" => trans('admin/components/general.total'),
"visible" => true,
], [
"field" => "remaining",
"searchable" => false,
"sortable" => false,
"title" => trans('admin/components/general.remaining'),
"visible" => true,
], [
"field" => "min_amt",
"searchable" => false,
"sortable" => false,
"title" => trans('general.min_amt'),
"visible" => true,
], [
"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.purchase_cost'),
"visible" => true,
],[
"field" => "change",
"searchable" => false,
"sortable" => false,
"visible" => true,
"title" => trans('general.change'),
"formatter" => "consumablesInOutFormatter",
], [
"field" => "actions",
"searchable" => false,
"sortable" => false,
"switchable" => false,
"title" => trans('table.actions'),
"visible" => true,
"formatter" => "consumablesActionsFormatter",
]
];
return json_encode($layout);
}
/**
* Url to view this item.
* @return string
*/
public function viewUrl()
{
return route('consumables.show', $this->id);
}
}