Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 130
0.00% covered (danger)
0.00%
0 / 14
CRAP
0.00% covered (danger)
0.00%
0 / 1
Approvals
0.00% covered (danger)
0.00%
0 / 130
0.00% covered (danger)
0.00%
0 / 14
930
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 get_approvals
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
6
 update_approval
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 1
6
 list_approvers
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
6
 list_workflow_approvers
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 1
6
 create_approver
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
12
 create_approver_v2
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
12
 create_workflow_approver
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 1
12
 delete_approver
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
 delete_approver_v2
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
 delete_workflow_approver
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
 list_approval_budget_types
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
6
 create_approval_budget_type
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
6
 delete_approval_budget_type
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace App\Http\Controllers;
4
5use App\Models\TblApprovalBudgetTypes;
6use App\Models\TblApprovals;
7use App\Models\TblApprovers;
8use App\Models\TblApproversV2;
9use App\Models\TblWorkflowApprover;
10use Illuminate\Http\Request;
11use Illuminate\Support\Facades\App;
12use Illuminate\Support\Facades\DB;
13
14class Approvals extends Controller
15{
16    public function __construct()
17    {
18        App::setLocale(@getallheaders()['Locale-ID']);
19    }
20
21    public function get_approvals()
22    {
23
24        try {
25
26            $result = TblApprovals::first();
27
28            return response([
29                'message' => 'OK',
30                'data' => $result,
31            ]);
32
33        } catch (\Exception $e) {
34            /** @disregard P1014 */
35            $e->exceptionCode = 'GET_APPROVALS_EXCEPTION';
36            report($e);
37
38            return response(['message' => 'KO', 'error' => $e->getMessage()]);
39        }
40
41    }
42
43    public function update_approval(Request $request, $approvalId)
44    {
45
46        try {
47
48            $data = $request->all();
49            $approvalId = intval($approvalId);
50
51            $data['updated_at'] = date('Y-m-d H:i:s');
52            $result = TblApprovals::where('approval_id', $approvalId)->update($data);
53
54            return response([
55                'message' => 'OK',
56                'data' => $result,
57            ]);
58
59        } catch (\Exception $e) {
60            /** @disregard P1014 */
61            $e->exceptionCode = 'UPDATE_APPROVAL_EXCEPTION';
62            report($e);
63
64            return response(['message' => 'KO', 'error' => $e->getMessage()]);
65        }
66
67    }
68
69    public function list_approvers($companyId)
70    {
71
72        try {
73
74            $companyId = intval($companyId);
75
76            $query = 'SELECT 
77                        a.id, 
78                        a.name, 
79                        a.email
80                    FROM 
81                        tbl_users a
82                        LEFT JOIN tbl_approvers b
83                            ON a.id = b.user_id
84                    WHERE b.company_id = ?
85                    ORDER BY a.name ASC';
86
87            $result = DB::select($query, [$companyId]);
88
89            $query = 'SELECT 
90                        a.id, 
91                        a.name, 
92                        a.email
93                    FROM 
94                        tbl_users a
95                        LEFT JOIN tbl_approvers_v2 b
96                            ON a.id = b.user_id
97                    WHERE b.company_id = ?
98                    ORDER BY a.name ASC';
99
100            $resultV2 = DB::select($query, [$companyId]);
101
102            return response([
103                'message' => 'OK',
104                'data' => $result,
105                'dataV2' => $resultV2,
106            ]);
107
108        } catch (\Exception $e) {
109            /** @disregard P1014 */
110            $e->exceptionCode = 'LIST_APPROVERS_EXCEPTION';
111            report($e);
112
113            return response(['message' => 'KO', 'error' => $e->getMessage()]);
114        }
115
116    }
117
118    public function list_workflow_approvers($companyId)
119    {
120
121        try {
122
123            $companyId = intval($companyId);
124
125            $query = 'SELECT 
126                        a.id, 
127                        a.name, 
128                        a.email, 
129                        (
130                        SELECT 
131                            approver_id 
132                        FROM 
133                            tbl_workflow_approvers
134                        WHERE 
135                            user_id = a.id
136                            AND company_id = ?
137                        ) is_selected 
138                    FROM 
139                        tbl_users a
140                    ORDER BY a.name ASC';
141
142            $result = DB::select($query, [$companyId]);
143
144            return response([
145                'message' => 'OK',
146                'data' => $result,
147            ]);
148
149        } catch (\Exception $e) {
150            /** @disregard P1014 */
151            $e->exceptionCode = 'LIST_WORKFLOW_APPROVERS_EXCEPTION';
152            report($e);
153
154            return response(['message' => 'KO', 'error' => $e->getMessage()]);
155        }
156
157    }
158
159    public function create_approver(Request $request)
160    {
161
162        try {
163
164            $data = $request->all();
165
166            $count = TblApprovers::where('user_id', $data['user_id'])->where('company_id', $data['company_id'])->count();
167
168            if ($count == 0) {
169                TblApprovers::create($data);
170            }
171
172            TblApproversV2::where('user_id', $data['user_id'])->where('company_id', $data['company_id'])->delete();
173
174            $result = $this->list_approvers($data['company_id']);
175
176            return $result;
177
178        } catch (\Exception $e) {
179            /** @disregard P1014 */
180            $e->exceptionCode = 'CREATE_APPROVER_EXCEPTION';
181            report($e);
182
183            return response(['message' => 'KO', 'error' => $e->getMessage()]);
184        }
185
186    }
187
188    public function create_approver_v2(Request $request)
189    {
190
191        try {
192
193            $data = $request->all();
194
195            $count = TblApproversV2::where('user_id', $data['user_id'])->where('company_id', $data['company_id'])->count();
196
197            if ($count == 0) {
198                TblApproversV2::create($data);
199            }
200
201            TblApprovers::where('user_id', $data['user_id'])->where('company_id', $data['company_id'])->delete();
202
203            $result = $this->list_approvers($data['company_id']);
204
205            return $result;
206
207        } catch (\Exception $e) {
208            /** @disregard P1014 */
209            $e->exceptionCode = 'CREATE_APPROVER_V2_EXCEPTION';
210            report($e);
211
212            return response(['message' => 'KO', 'error' => $e->getMessage()]);
213        }
214
215    }
216
217    public function create_workflow_approver(Request $request)
218    {
219
220        try {
221
222            $data = $request->all();
223
224            $count = TblWorkflowApprover::where('user_id', $data['user_id'])->where('company_id', $data['company_id'])->count();
225
226            if ($count == 0) {
227                TblWorkflowApprover::create($data);
228            }
229
230            $result = $this->list_workflow_approvers($data['company_id']);
231
232            return $result;
233
234        } catch (\Exception $e) {
235            /** @disregard P1014 */
236            $e->exceptionCode = 'CREATE_WORKFLOW_APPROVER_EXCEPTION';
237            report($e);
238
239            return response(['message' => 'KO', 'error' => $e->getMessage()]);
240        }
241
242    }
243
244    public function delete_approver($userId)
245    {
246
247        try {
248
249            $userId = intval($userId);
250
251            TblApprovers::where('user_id', $userId)->delete();
252
253            return response(['message' => 'OK']);
254
255        } catch (\Exception $e) {
256            /** @disregard P1014 */
257            $e->exceptionCode = 'DELETE_APPROVER_EXCEPTION';
258            report($e);
259
260            return response(['message' => 'KO', 'error' => $e->getMessage()]);
261        }
262
263    }
264
265    public function delete_approver_v2($userId)
266    {
267
268        try {
269
270            $userId = intval($userId);
271
272            TblApproversV2::where('user_id', $userId)->delete();
273
274            return response(['message' => 'OK']);
275
276        } catch (\Exception $e) {
277            /** @disregard P1014 */
278            $e->exceptionCode = 'DELETE_APPROVER_V2_EXCEPTION';
279            report($e);
280
281            return response(['message' => 'KO', 'error' => $e->getMessage()]);
282        }
283
284    }
285
286    public function delete_workflow_approver($userId)
287    {
288
289        try {
290
291            $userId = intval($userId);
292
293            TblWorkflowApprover::where('user_id', $userId)->delete();
294
295            return response(['message' => 'OK']);
296
297        } catch (\Exception $e) {
298            /** @disregard P1014 */
299            $e->exceptionCode = 'DELETE_WORKFLOW_APPROVER_EXCEPTION';
300            report($e);
301
302            return response(['message' => 'KO', 'error' => $e->getMessage()]);
303        }
304
305    }
306
307    public function list_approval_budget_types()
308    {
309
310        try {
311
312            $query = 'SELECT 
313                        a.budget_type_id, 
314                        a.name, 
315                        (
316                        SELECT 
317                            id 
318                        FROM 
319                            tbl_approval_budget_types 
320                        WHERE 
321                            budget_type_id = a.budget_type_id
322                        ) is_selected
323                    FROM 
324                        tbl_budget_types a
325                    ORDER BY a.name ASC';
326
327            $result = DB::select($query);
328
329            return response([
330                'message' => 'OK',
331                'data' => $result,
332            ]);
333
334        } catch (\Exception $e) {
335            /** @disregard P1014 */
336            $e->exceptionCode = 'LIST_APPROVAL_BUDGET_TYPES_EXCEPTION';
337            report($e);
338
339            return response(['message' => 'KO', 'error' => $e->getMessage()]);
340        }
341
342    }
343
344    public function create_approval_budget_type(Request $request)
345    {
346
347        try {
348
349            $data = $request->all();
350
351            TblApprovalBudgetTypes::create($data);
352
353            $result = $this->list_approval_budget_types();
354
355            return $result;
356
357        } catch (\Exception $e) {
358            /** @disregard P1014 */
359            $e->exceptionCode = 'CREATE_APPROVAL_BUDGET_TYPE_EXCEPTION';
360            report($e);
361
362            return response(['message' => 'KO', 'error' => $e->getMessage()]);
363        }
364
365    }
366
367    public function delete_approval_budget_type($budgetTypeId)
368    {
369
370        try {
371
372            $budgetTypeId = intval($budgetTypeId);
373
374            TblApprovalBudgetTypes::where('budget_type_id', $budgetTypeId)->delete();
375
376            $result = $this->list_approval_budget_types();
377
378            return $result;
379
380        } catch (\Exception $e) {
381            /** @disregard P1014 */
382            $e->exceptionCode = 'DELETE_APPROVAL_BUDGET_TYPE_EXCEPTION';
383            report($e);
384
385            return response(['message' => 'KO', 'error' => $e->getMessage()]);
386        }
387
388    }
389}