Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 6 |
CRAP | |
0.00% |
0 / 42 |
CompaniesController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 6 |
156 | |
0.00% |
0 / 42 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
index | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 6 |
|||
store | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 13 |
|||
show | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
update | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 13 |
|||
destroy | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
1 | <?php |
2 | |
3 | namespace Qmp\Laravel\Compta\Controllers; |
4 | |
5 | use App\Http\Controllers\Controller; |
6 | use App\User; |
7 | use Illuminate\Http\Response; |
8 | use Illuminate\Http\Request; |
9 | use Illuminate\Support\Facades\Redis; |
10 | use Qmp\Laravel\Acls\Client\Client; |
11 | use Qmp\Laravel\Acls\Exceptions\RolePermissionException; |
12 | use Qmp\Laravel\Compta\Models\Company; |
13 | use Qmp\Laravel\MicroService\Controllers\AbstractMicroServiceController; |
14 | |
15 | class CompaniesController extends AbstractMicroServiceController |
16 | { |
17 | /** |
18 | * AccountLinesController constructor. |
19 | * @param Request $request |
20 | */ |
21 | public function __construct(Request $request) |
22 | { |
23 | parent::__construct($request); |
24 | } |
25 | |
26 | /** |
27 | * Display a listing of the resource. |
28 | * |
29 | * @return \Illuminate\Http\Response |
30 | */ |
31 | public function index() |
32 | { |
33 | try { |
34 | Client::perm($this->userId, ['compta_manage']); |
35 | $company = Company::select()->with('users')->simplePaginate(); |
36 | } catch (RolePermissionException $e) { |
37 | $user = User::find($this->userId); |
38 | $company = $user->comptabilityCompanies()->simplePaginate(); |
39 | } |
40 | |
41 | return response()->json($company); |
42 | } |
43 | |
44 | /** |
45 | * Store a newly created resource in storage. |
46 | * |
47 | * @param \Illuminate\Http\Request $request |
48 | * @return \Illuminate\Http\Response |
49 | */ |
50 | public function store(Request $request) |
51 | { |
52 | $request->validate([ |
53 | 'name' => 'required|max:255', |
54 | 'fiscal_year_date_at' => 'required|max:255', |
55 | 'users' => 'nullable|array' |
56 | ]); |
57 | |
58 | try { |
59 | $company = new Company(); |
60 | $company->name = $request->name; |
61 | $company->fiscal_year_date_at = $request->fiscal_year_date_at; |
62 | $company->save(); |
63 | |
64 | if ($request->users) { |
65 | $company->users()->sync($request->users); |
66 | } else { |
67 | $company->users()->sync([$this->userId]); |
68 | } |
69 | |
70 | } catch(\Exception $e) { |
71 | return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY); |
72 | } |
73 | |
74 | Redis::publish('comptability', json_encode(['action' => 'update-company'])); |
75 | |
76 | return response(['status' => 'ok', 'company_id' => $company->id], Response::HTTP_CREATED); |
77 | } |
78 | |
79 | /** |
80 | * Display the specified resource. |
81 | * |
82 | * @return \Illuminate\Http\Response |
83 | */ |
84 | public function show($id) |
85 | { |
86 | return response(Company::find($id)); |
87 | } |
88 | |
89 | /** |
90 | * Update the specified resource in storage. |
91 | * |
92 | * @param \Illuminate\Http\Request $request |
93 | * @return \Illuminate\Http\Response |
94 | */ |
95 | public function update(Request $request, $id) |
96 | { |
97 | $request->validate([ |
98 | 'name' => 'required|max:255', |
99 | 'fiscal_year_date_at' => 'required|max:255', |
100 | 'users' => 'nullable|array' |
101 | ]); |
102 | |
103 | try { |
104 | // not need to update |
105 | $company = Company::findOrFail($id); |
106 | $company->name = $request->name; |
107 | $company->fiscal_year_date_at = $request->fiscal_year_date_at; |
108 | $company->save(); |
109 | |
110 | if ($request->users) { |
111 | $company->users()->sync($request->users); |
112 | } else { |
113 | $company->users()->sync([$this->userId]); |
114 | } |
115 | } catch (\Exception $e) { |
116 | return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY); |
117 | } |
118 | |
119 | Redis::publish('comptability', json_encode(['action' => 'update-company'])); |
120 | |
121 | return response(['status' => 'ok'], Response::HTTP_OK); |
122 | } |
123 | |
124 | /** |
125 | * Remove the specified resource from storage. |
126 | * |
127 | * @return \Illuminate\Http\Response |
128 | */ |
129 | public function destroy($id) |
130 | { |
131 | try { |
132 | $company = Company::find($id); |
133 | $company->users()->sync([]); |
134 | $company->delete(); |
135 | |
136 | } catch (\Exception $e) { |
137 | return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY); |
138 | } |
139 | |
140 | Redis::publish('comptability', json_encode(['action' => 'update-company'])); |
141 | |
142 | return response(['status' => 'ok'], Response::HTTP_OK); |
143 | } |
144 | } |