private static function init() { $columns = DB::select()->from('job_columns')->execute()->as_array(); $result = DB::select('column_id', 'permissions', 'search')->from('group_columns')->where('group_id', '=', Group::current('id'))->execute(); $permissions = $result->as_array('column_id', 'permissions'); $search = $result->as_array('column_id', 'search'); foreach ($columns as $column) { self::$all[$column['id']] = $column['name']; self::$types[$column['id']] = $column['type']; self::$tabs[$column['id']] = $column['tab_id']; if ($column['csv']) { self::$csv[$column['id']] = $column['name']; } if ($column['direct']) { self::$direct[$column['id']] = $column['name']; } if ($column['show_reports']) { self::$static[$column['id']] = $column['show_reports']; } if (Arr::get($permissions, $column['id'])) { self::$permissions[$column['id']] = Arr::get($permissions, $column['id']); } if (Arr::get($search, $column['id'])) { self::$search[$column['id']] = Arr::get($search, $column['id']); } if ($column['track']) { self::$track[$column['id']] = $column['id']; } if ($column['persistent']) { self::$persistent[$column['id']] = $column['id']; } if ($column['read_only']) { self::$readonly[$column['id']] = $column['id']; } if (floatval($column['financial'])) { self::$financial[$column['id']] = floatval($column['financial']); } } if (Group::current('is_admin')) { self::$columns = self::$all; self::$search = self::$static; } else { self::$columns = array_intersect_key(self::$all, self::$permissions); } }