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