119 lines
5.0 KiB
PHP
119 lines
5.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Requests\LambdaRequest;
|
|
use DB;
|
|
use Auth;
|
|
|
|
class PositionController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth');
|
|
$this->_service = 'ums';
|
|
$this->_module = 'hierarchy';
|
|
$this->_viewname = 'position';
|
|
$this->_title = 'Position';
|
|
$this->_base_url = '/position';
|
|
}
|
|
|
|
protected function get_list_fields(){
|
|
return [
|
|
'actions' => ['title' => 'Actions', 'buttons' => [ 'edit', 'delete' ] ],
|
|
'name' => ['title' => 'Position Name', 'type' => 'text'],
|
|
'code' => ['title' => 'Position Code', 'type' => 'text'],
|
|
'type' => ['title' => 'Type', 'type' => 'text'],
|
|
'designation' => ['title' => 'Designation', 'type' => 'text'],
|
|
|
|
//'visiblity' => ['title' => 'Visiblity', 'type' => 'select'],
|
|
//'channel' => ['title' => 'Channels', 'type' => 'select'],
|
|
'status' => ['title' => 'Status', 'type' => 'select'],
|
|
|
|
];
|
|
}
|
|
|
|
public function list(Request $request) {
|
|
//$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all', ['positions' => true]);
|
|
//echo '<pre>'; print_r($response); exit;
|
|
if( in_array(Auth::user()->domain, ["crestroad"]) ) {
|
|
$response = LambdaRequest::signedrequest('get', 'catalog', 'activity/hierarchy_list',[]);
|
|
} else {
|
|
$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/get_all', ['positions' => true]);
|
|
}
|
|
|
|
if($response->statusCode == 401) {
|
|
return redirect('/unauthorised');
|
|
}
|
|
$fields = $this->get_list_fields();
|
|
//echo '<pre>'; print_r($fields); exit;
|
|
return $this->view($this->_listtype)->with([
|
|
'title' => $this->_title,
|
|
'fields' => $fields,
|
|
'base_url' => $this->_base_url,
|
|
'items' => $response->data->items,
|
|
'buttons' => $this->get_list_buttons()
|
|
]);
|
|
}
|
|
|
|
protected function get_form_fields($type, $values){
|
|
// $channels = $this->getlambda('get', 'ums', 'channel', 'dropdown');
|
|
// $channels_dd = [];
|
|
// foreach($channels->data->items as $channel){
|
|
// $channels_dd[$channel->id] = $channel->name;
|
|
// }
|
|
// $users = $this->getlambda('get', 'ums', 'users', 'dropdown');
|
|
// $users_dd = [];
|
|
// foreach($users->data->items as $user){
|
|
// $users_dd[$user->id] = $user->firstname . ' ' . $user->lastname . ' (' . $user->employee_code . ')';
|
|
// }
|
|
$domain = LambdaRequest::signedrequest('get', $this->_service, 'domain/get_one');
|
|
|
|
$roles_dd = [];
|
|
foreach($domain->data->item->designations as $role){
|
|
$roles_dd[$role] = $role;
|
|
}
|
|
|
|
return [
|
|
'name' => ['title' => 'Position Name', 'type' => 'text', 'required' => true],
|
|
'code' => ['title' => 'Position Code', 'type' => 'text', 'required' => true],
|
|
'type' => ['title' => 'Type', 'type' => 'select', 'required' => true, 'values' => ['Territory' => 'Territory', 'Area' => 'Area', 'Region' => 'Region', 'Zone' => 'Zone', 'Country' => 'Country' ] ],
|
|
'designation' => ['title' => 'Designation', 'type' => 'select', 'required' => true, 'values' => $roles_dd ],
|
|
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled'] ],
|
|
];
|
|
}
|
|
|
|
|
|
protected function get_import_fields($records){
|
|
$domain = LambdaRequest::signedrequest('get', $this->_service, 'domain/get_one');
|
|
$designations_dd = [];
|
|
foreach($domain->data->item->designations as $designation){
|
|
$designations_dd[$designation] = $designation;
|
|
}
|
|
$types_dd = [];
|
|
foreach($domain->data->item->territory_types as $type){
|
|
$types_dd[$type] = $type;
|
|
}
|
|
$response = LambdaRequest::signedrequest('get', $this->_service, $this->_module.'/dropdown');
|
|
//echo '<pre>'; print_r($types_dd); exit;
|
|
$items = [];
|
|
foreach($response->data->items as $item) {
|
|
$items[$item->code] = $item->code;
|
|
}
|
|
foreach($records as $record) {
|
|
$items[$record['code']] = $record['code'];
|
|
}
|
|
|
|
return [
|
|
'type' => ['title' => 'Type', 'type' => 'select', 'values' => $types_dd, 'required' => true],
|
|
'name' => ['title' => 'Name', 'type' => 'text'],
|
|
'code' => ['title' => 'Code', 'type' => 'text', 'required' => true],
|
|
'parent' => ['title' => 'Parent', 'type' => 'select', 'values' => $items, 'required' => true],
|
|
'designation' => ['title' => 'Designation', 'type' => 'select', 'values' => $designations_dd, 'required' => true],
|
|
'email' => ['title' => 'Email', 'type' => 'text'],
|
|
'reportee' => ['title' => 'Reportee Email', 'type' => 'text'],
|
|
'level' => ['title' => 'Level', 'type' => 'text'],
|
|
];
|
|
}
|
|
}
|