-
Notifications
You must be signed in to change notification settings - Fork 0
/
UsersController.php
106 lines (96 loc) · 3.96 KB
/
UsersController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
namespace App\Http\Controllers;
use App\Item;
use App\Person;
use App\Report;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Transformers\ReportTransformer;
use Transformers\UserTransformer;
class UsersController extends Controller
{
public function __construct()
{
$this->person = new Person();
$this->report = new Report();
}
public function index(Request $request)
{
$params = $request->all();
$role = session('user.role');
$data['users'] = [];
$data['limit'] = isset($params['limit']) ? $params['limit'] : 5;
$data['skip'] = isset($params['skip']) ? $params['skip'] : 0;
$option = [ 'limit' => $data['limit'], 'skip' => $data['skip']];
if ($role == 'M') {
//get users list for the manager
$response = $this->person->getAssignedPersons((int)session('user.id'), $option);
if (isset($response['data']) && !empty($response['data'])) {
foreach($response['data'] as $row) {
//get user info
$user = $this->person->get('person_' . $row['assigned_user_id']);
$data['users'][] = $this->person->respondWithItem($user, new UserTransformer);
}
}
} else {
//get all
$response = $this->person->all($option);
if (! isset($response['error'])) {
foreach($response['data'] as $row) {
//get users report count
$reports= $this->report->getReportsByPerson((int)$row['id']);
$totalIReport = 0;
$totalGReport = 0;
if (! empty($reports['data'])) {
foreach($reports['data'] as $srow) {
if ($srow['report_type'] == 0) {
$totalIReport += 1;
} else {
$totalGReport += 1;
}
}
}
$row['totalIReport'] = $totalIReport;
$row['totalGReport'] = $totalGReport;
$data['users'][] = $row;
}
$data['users'] = $this->person->respondWithCollection($data['users'], new UserTransformer);
}
}
return view('users', $data);
}
public function show($id, Request $request)
{
$id = (int) my_decode($id);
$data['user'] = $this->person->respondWithItem($this->person->get('person_' . $id), new UserTransformer);
//get invidvidual reports
$response = $this->report->individual($id);
$data['totalIReport'] = 0;
$data['individual'] = [];
$item = new Item();
if (! isset($response['error'])) {
$data['individual'] = $this->report->respondWithCollection($response['data'], new ReportTransformer);
foreach ($data['individual'] as $i => $row) {
$items = $item->getItemsByReport((int)my_decode($row['id']));
$data['individual'][$i]['items'] = $items['totalRecords'];
}
$data['totalIReport'] = $response['totalRecords'];
}
$response = $this->report->group($id);
$data['totalGReport'] = 0;
$data['group'] = [];
if (! isset($response['error'])) {
$data['group'] = $this->report->respondWithCollection($response['data'], new ReportTransformer);
foreach ($data['group'] as $i => $row) {
$items = $item->getItemsByReport((int)my_decode($row['id']));
$data['group'][$i]['items'] = $items['totalRecords'];
}
$data['totalGReport'] = $response['totalRecords'];
}
return view('users_profile', $data);
}
public function autocomplete(Request $request)
{
}
}