/**
  *  Returns a form view to edit a selected asset maintenance.
  *
  * @see AssetMaintenancesController::postEdit() method that stores the data
  * @author  Vincent Sposato <*****@*****.**>
  * @param int $assetMaintenanceId
  * @version v1.0
  * @since [v1.8]
  * @return mixed
  */
 public function getEdit($assetMaintenanceId = null)
 {
     // Check if the asset maintenance exists
     if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
         // Redirect to the improvement management page
         return redirect()->to('admin/asset_maintenances')->with('error', trans('admin/asset_maintenances/message.not_found'));
     } elseif (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
         return static::getInsufficientPermissionsRedirect();
     }
     if ($assetMaintenance->completion_date == '0000-00-00') {
         $assetMaintenance->completion_date = null;
     }
     if ($assetMaintenance->start_date == '0000-00-00') {
         $assetMaintenance->start_date = null;
     }
     if ($assetMaintenance->cost == '0.00') {
         $assetMaintenance->cost = null;
     }
     // Prepare Improvement Type List
     $assetMaintenanceType = ['' => 'Select an improvement type'] + AssetMaintenance::getImprovementOptions();
     $assets = Company::scopeCompanyables(Asset::with('model', 'assignedUser')->get(), 'assets.company_id')->lists('detailed_name', 'id');
     // Get Supplier List
     $supplier_list = Helper::suppliersList();
     // Render the view
     return View::make('asset_maintenances/edit')->with('asset_list', $assets)->with('selectedAsset', null)->with('supplier_list', $supplier_list)->with('assetMaintenanceType', $assetMaintenanceType)->with('assetMaintenance', $assetMaintenance);
 }
Beispiel #2
0
 public function getBulkCheckout()
 {
     // Get the dropdown of users and then pass it to the checkout view
     $users_list = Helper::usersList();
     // Filter out assets that are not deployable.
     $assets = Asset::RTD()->get();
     $assets_list = Company::scopeCompanyables($assets, 'assets.company_id')->lists('detailed_name', 'id')->toArray();
     return View::make('hardware/bulk-checkout')->with('users_list', $users_list)->with('assets_list', $assets_list);
 }
Beispiel #3
0
 /**
  * Query builder scope for Requestable assets
  *
  * @param  Illuminate\Database\Query\Builder $query Query builder instance
  *
  * @return Illuminate\Database\Query\Builder          Modified query builder
  */
 public function scopeRequestableAssets($query)
 {
     return Company::scopeCompanyables($query->where('requestable', '=', 1))->whereHas('assetstatus', function ($query) {
         $query->where('deployable', '=', 1)->where('pending', '=', 0)->where('archived', '=', 0);
     });
 }
 /**
  * Returns the JSON response containing the the consumables data.
  *
  * @author [A. Gianotto] [<*****@*****.**>]
  * @see ConsumablesController::getIndex() method that returns the view that consumes the JSON.
  * @since [v1.0]
  * @param int $consumableId
  * @return View
  */
 public function getDatatable()
 {
     $consumables = Company::scopeCompanyables(Consumable::select('consumables.*')->whereNull('consumables.deleted_at')->with('company', 'location', 'category', 'users'));
     if (Input::has('search')) {
         $consumables = $consumables->TextSearch(e(Input::get('search')));
     }
     if (Input::has('offset')) {
         $offset = e(Input::get('offset'));
     } else {
         $offset = 0;
     }
     if (Input::has('limit')) {
         $limit = e(Input::get('limit'));
     } else {
         $limit = 50;
     }
     $allowed_columns = ['id', 'name', 'order_number', 'min_amt', 'purchase_date', 'purchase_cost', 'companyName', 'category', 'model_no', 'item_no', 'manufacturer'];
     $order = Input::get('order') === 'asc' ? 'asc' : 'desc';
     $sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at';
     switch ($sort) {
         case 'category':
             $consumables = $consumables->OrderCategory($order);
             break;
         case 'location':
             $consumables = $consumables->OrderLocation($order);
             break;
         case 'manufacturer':
             $consumables = $consumables->OrderManufacturer($order);
             break;
         case 'companyName':
             $consumables = $consumables->OrderCompany($order);
             break;
         default:
             $consumables = $consumables->orderBy($sort, $order);
             break;
     }
     $consumCount = $consumables->count();
     $consumables = $consumables->skip($offset)->take($limit)->get();
     $rows = array();
     foreach ($consumables as $consumable) {
         $actions = '<nobr>';
         if (Gate::allows('consumables.checkout')) {
             $actions .= '<a href="' . route('checkout/consumable', $consumable->id) . '" style="margin-right:5px;" class="btn btn-info btn-sm" ' . ($consumable->numRemaining() > 0 ? '' : ' disabled') . '>' . trans('general.checkout') . '</a>';
         }
         if (Gate::allows('consumables.edit')) {
             $actions .= '<a href="' . route('update/consumable', $consumable->id) . '" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a>';
         }
         if (Gate::allows('consumables.delete')) {
             $actions .= '<a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="' . route('delete/consumable', $consumable->id) . '" data-content="' . trans('admin/consumables/message.delete.confirm') . '" data-title="' . trans('general.delete') . ' ' . htmlspecialchars($consumable->name) . '?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
         }
         $actions .= '</nobr>';
         $company = $consumable->company;
         $rows[] = array('id' => $consumable->id, 'name' => (string) link_to('admin/consumables/' . $consumable->id . '/view', e($consumable->name)), 'location' => $consumable->location ? e($consumable->location->name) : '', 'min_amt' => e($consumable->min_amt), 'qty' => e($consumable->qty), 'manufacturer' => $consumable->manufacturer ? e($consumable->manufacturer->name) : '', 'model_no' => e($consumable->model_no), 'item_no' => e($consumable->item_no), '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) : '', 'numRemaining' => $consumable->numRemaining(), 'actions' => $actions, 'companyName' => is_null($company) ? '' : e($company->name));
     }
     $data = array('total' => $consumCount, 'rows' => $rows);
     return $data;
 }
 /**
  * Generates a JSON response to populate the licence index datatables.
  *
  * @author [A. Gianotto] [<*****@*****.**>]
  * @see LicensesController::getIndex() method that provides the view
  * @since [v1.0]
  * @return String JSON
  */
 public function getDatatable()
 {
     $licenses = Company::scopeCompanyables(License::with('company'));
     if (Input::has('search')) {
         $licenses = $licenses->TextSearch(Input::get('search'));
     }
     $allowed_columns = ['id', 'name', 'purchase_cost', 'expiration_date', 'purchase_order', 'order_number', 'notes', 'purchase_date', 'serial'];
     $order = Input::get('order') === 'asc' ? 'asc' : 'desc';
     $sort = in_array(Input::get('sort'), $allowed_columns) ? e(Input::get('sort')) : 'created_at';
     $licenses = $licenses->orderBy($sort, $order);
     $licenseCount = $licenses->count();
     $licenses = $licenses->skip(Input::get('offset'))->take(Input::get('limit'))->get();
     $rows = array();
     foreach ($licenses as $license) {
         $actions = '<span style="white-space: nowrap;">';
         if (Gate::allows('licenses.checkout')) {
             $actions .= '<a href="' . route('freecheckout/license', $license->id) . '" class="btn btn-primary btn-sm' . ($license->remaincount() > 0 ? '' : ' disabled') . '" style="margin-right:5px;">' . trans('general.checkout') . '</a> ';
         }
         if (Gate::allows('licenses.create')) {
             $actions .= '<a href="' . route('clone/license', $license->id) . '" class="btn btn-info btn-sm" style="margin-right:5px;" title="Clone asset"><i class="fa fa-files-o"></i></a>';
         }
         if (Gate::allows('licenses.edit')) {
             $actions .= '<a href="' . route('update/license', $license->id) . '" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a>';
         }
         if (Gate::allows('licenses.delete')) {
             $actions .= '<a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="' . route('delete/license', $license->id) . '" data-content="' . trans('admin/licenses/message.delete.confirm') . '" data-title="' . trans('general.delete') . ' ' . htmlspecialchars($license->name) . '?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
         }
         $actions .= '</span>';
         $rows[] = array('id' => $license->id, 'name' => (string) link_to('/admin/licenses/' . $license->id . '/view', $license->name), 'serial' => (string) link_to('/admin/licenses/' . $license->id . '/view', mb_strimwidth($license->serial, 0, 50, "...")), 'totalSeats' => $license->totalSeatsByLicenseID(), 'remaining' => $license->remaincount(), 'license_name' => e($license->license_name), '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_order' => $license->purchase_order ? e($license->purchase_order) : '', 'order_number' => $license->order_number ? e($license->order_number) : '', 'notes' => $license->notes ? e($license->notes) : '', 'actions' => $actions, 'companyName' => is_null($license->company) ? '' : e($license->company->name));
     }
     $data = array('total' => $licenseCount, 'rows' => $rows);
     return $data;
 }
Beispiel #6
0
 /**
  * Return JSON response with a list of user details for the getIndex() view.
  *
  * @author [A. Gianotto] [<*****@*****.**>]
  * @since [v1.6]
  * @see UsersController::getIndex() method that consumed this JSON response
  * @return string JSON
  */
 public function getDatatable(Request $request, $status = null)
 {
     if (Input::has('offset')) {
         $offset = e(Input::get('offset'));
     } else {
         $offset = 0;
     }
     if (Input::has('limit')) {
         $limit = e(Input::get('limit'));
     } else {
         $limit = 50;
     }
     if (Input::get('sort') == 'name') {
         $sort = 'first_name';
     } else {
         $sort = e(Input::get('sort'));
     }
     $users = User::select(array('users.id', 'users.employee_num', 'users.email', 'users.username', 'users.location_id', 'users.manager_id', 'users.first_name', 'users.last_name', 'users.created_at', 'users.notes', 'users.company_id', 'users.deleted_at', 'users.activated'))->with('assets', 'accessories', 'consumables', 'licenses', 'manager', 'groups', 'userloc', 'company', 'throttle');
     $users = Company::scopeCompanyables($users);
     switch ($status) {
         case 'deleted':
             $users = $users->withTrashed()->Deleted();
             break;
     }
     if (Input::has('search')) {
         $users = $users->TextSearch(Input::get('search'));
     }
     $order = Input::get('order') === 'asc' ? 'asc' : 'desc';
     switch (Input::get('sort')) {
         case 'manager':
             $users = $users->OrderManager($order);
             break;
         case 'location':
             $users = $users->OrderLocation($order);
             break;
         default:
             $allowed_columns = ['last_name', 'first_name', 'email', 'username', 'employee_num', 'assets', 'accessories', 'consumables', 'licenses', 'groups', 'activated', 'created_at'];
             $sort = in_array($sort, $allowed_columns) ? $sort : 'first_name';
             $users = $users->orderBy($sort, $order);
             break;
     }
     $userCount = $users->count();
     $users = $users->skip($offset)->take($limit)->get();
     $rows = array();
     foreach ($users as $user) {
         $group_names = '';
         $inout = '';
         $actions = '<nobr>';
         foreach ($user->groups as $group) {
             $group_names .= '<a href="' . config('app.url') . '/admin/groups/' . $group->id . '/edit" class="label  label-default">' . $group->name . '</a> ';
         }
         if (!is_null($user->deleted_at)) {
             if (Gate::allows('users.delete')) {
                 $actions .= '<a href="' . route('restore/user', $user->id) . '" class="btn btn-warning btn-sm"><i class="fa fa-share icon-white"></i></a> ';
             }
         } else {
             if (Gate::allows('users.delete')) {
                 if ($user->accountStatus() == 'suspended') {
                     $actions .= '<a href="' . route('unsuspend/user', $user->id) . '" class="btn btn-default btn-sm"><span class="fa fa-clock-o"></span></a> ';
                 }
             }
             if (Gate::allows('users.edit')) {
                 $actions .= '<a href="' . route('update/user', $user->id) . '" class="btn btn-warning btn-sm"><i class="fa fa-pencil icon-white"></i></a> ';
                 $actions .= '<a href="' . route('clone/user', $user->id) . '" class="btn btn-info btn-sm"><i class="fa fa-clone"></i></a>';
             }
             if (Gate::allows('users.delete')) {
                 if (Auth::user()->id !== $user->id && !config('app.lock_passwords')) {
                     $actions .= '<a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="' . route('delete/user', $user->id) . '" data-content="Are you sure you wish to delete this user?" data-title="Delete ' . htmlspecialchars($user->first_name) . '?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a> ';
                 } else {
                     $actions .= ' <span class="btn delete-asset btn-danger btn-sm disabled"><i class="fa fa-trash icon-white"></i></span>';
                 }
             } else {
                 $actions .= 'foo';
             }
         }
         $actions .= '</nobr>';
         $rows[] = array('id' => $user->id, 'checkbox' => $status != 'deleted' ? '<div class="text-center hidden-xs hidden-sm"><input type="checkbox" name="edit_user[' . e($user->id) . ']" class="one_required"></div>' : '', 'name' => '<a title="' . e($user->fullName()) . '" href="../admin/users/' . e($user->id) . '/view">' . e($user->fullName()) . '</a>', 'email' => $user->email != '' ? '<a href="mailto:' . e($user->email) . '" class="hidden-md hidden-lg">' . e($user->email) . '</a>' . '<a href="mailto:' . e($user->email) . '" class="hidden-xs hidden-sm"><i class="fa fa-envelope"></i></a>' . '</span>' : '', 'username' => e($user->username), 'location' => $user->userloc ? e($user->userloc->name) : '', 'manager' => $user->manager ? '<a title="' . e($user->manager->fullName()) . '" href="users/' . e($user->manager->id) . '/view">' . e($user->manager->fullName()) . '</a>' : '', 'assets' => $user->assets->count(), 'employee_num' => e($user->employee_num), 'licenses' => $user->licenses->count(), 'accessories' => $user->accessories->count(), 'consumables' => $user->consumables->count(), 'groups' => $group_names, 'notes' => e($user->notes), 'created_at' => $user->created_at != '' ? e($user->created_at->format('F j, Y h:iA')) : '', 'activated' => $user->activated == '1' ? '<i class="fa fa-check"></i>' : '<i class="fa fa-times"></i>', 'actions' => $actions ? $actions : '', 'companyName' => is_null($user->company) ? '' : e($user->company->name));
     }
     $data = array('total' => $userCount, 'rows' => $rows);
     return $data;
 }
Beispiel #7
0
 public static function detailedAssetList()
 {
     $assets = array('' => trans('general.select_asset')) + Company::scopeCompanyables(Asset::all(), 'assets.company_id')->lists('detailed_name', 'id')->toArray();
     return $assets;
 }
Beispiel #8
0
 /**
  * Apply the scope to a given Eloquent query builder.
  *
  * @param  \Illuminate\Database\Eloquent\Builder  $builder
  * @return void
  */
 public function apply(Builder $builder, Model $model)
 {
     return Company::scopeCompanyables($builder);
 }