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