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 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 54
BankController
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 7
306
0.00% covered (danger)
0.00%
0 / 54
 __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
 indexWithCompanyAndDates
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 9
 store
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 15
 show
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 4
 update
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 15
 destroy
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 7
1<?php
2
3namespace Qmp\Laravel\Compta\Controllers;
4
5use App\Http\Controllers\Controller;
6use Illuminate\Http\Response;
7use Illuminate\Http\Request;
8use Qmp\Laravel\Compta\Models\BankStmt;
9use Qmp\Laravel\MicroService\Controllers\AbstractMicroServiceController;
10
11class BankController extends AbstractMicroServiceController
12{
13    use UserAttributionTrait;
14
15    /**
16     * AccountLinesController constructor.
17     * @param Request $request
18     */
19    public function __construct(Request $request)
20    {
21        parent::__construct($request);
22    }
23
24    /**
25     * Display a listing of the resource.
26     *
27     * @return \Illuminate\Http\Response
28     */
29    public function index()
30    {
31        $bank = BankStmt::select()->simplePaginate();
32        return response()->json($bank);
33    }
34
35    /**
36     * Display a listing of the resource.
37     *
38     * @return \Illuminate\Http\Response
39     */
40    public function indexWithCompanyAndDates($companyId, $sinceDate = null, $lastDate = null)
41    {
42        if ($this->companyIsAttributedToUser($companyId)) {
43            $bankStmt = BankStmt::where('company_id', $companyId);
44            if ($sinceDate != null) {
45                $bankStmt->where('date_at', '<=', $sinceDate);
46            }
47
48            if ($lastDate != null) {
49                $bankStmt->where('date_at', '>=', $lastDate);
50            }
51
52            $bank = $bankStmt->simplePaginate();
53            return response()->json($bank);
54        }
55
56        return response()->json(['error' => $this->USER_NOT_ATTRIBUTED_MESSAGE], Response::HTTP_UNPROCESSABLE_ENTITY);
57    }
58
59    /**
60     * Store a newly created resource in storage.
61     *
62     * @param  \Illuminate\Http\Request  $request
63     * @return \Illuminate\Http\Response
64     */
65    public function store(Request $request)
66    {
67        $request->validate([
68            'company_id' => 'required|max:255',
69            'date_at' => 'required|max:255',
70            'title' => 'required|max:255',
71            'debit' => 'required|max:255',
72            'credit' => 'required|max:255',
73            'pointed' => 'required|max:255',
74        ]);
75
76        try {
77            if (!$this->companyIsAttributedToUser($request->company_id)) {
78                throw new \Exception($this->USER_NOT_ATTRIBUTED_MESSAGE);
79            }
80
81            $bank = new BankStmt();
82            $bank->company_id = $request->company_id;
83            $bank->date_at = $request->date_at;
84            $bank->title = $request->title;
85            $bank->debit = $request->debit;
86            $bank->credit = $request->credit;
87            $bank->pointed = $request->pointed;
88            $bank->save();
89        } catch(\Exception $e) {
90            return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY);
91        }
92
93        return response(['status' => 'ok', 'bank_stmt_id' => $bank->id], Response::HTTP_CREATED);
94    }
95
96    /**
97     * Display the specified resource.
98     *
99     * @return \Illuminate\Http\Response
100     */
101    public function show($id)
102    {
103        $bank = BankStmt::find($id);
104
105        if ($this->companyIsAttributedToUser($bank->company_id)) {
106            response($bank);
107        }
108
109        return response()->json(['error' => $this->USER_NOT_ATTRIBUTED_MESSAGE], Response::HTTP_UNPROCESSABLE_ENTITY);
110    }
111
112    /**
113     * Update the specified resource in storage.
114     *
115     * @param  \Illuminate\Http\Request  $request
116     * @return \Illuminate\Http\Response
117     */
118    public function update(Request $request, $id)
119    {
120        $request->validate([
121            'company_id' => 'required|max:255',
122            'date_at' => 'required|max:255',
123            'title' => 'required|max:255',
124            'debit' => 'required|max:255',
125            'credit' => 'required|max:255',
126            'pointed' => 'required|max:255',
127        ]);
128
129        try {
130            if (!$this->companyIsAttributedToUser($request->company_id)) {
131                throw new \Exception($this->USER_NOT_ATTRIBUTED_MESSAGE);
132            }
133
134            $bank = BankStmt::findOrFail($id);
135            $bank->company_id = $request->company_id;
136            $bank->date_at = $request->date_at;
137            $bank->title = $request->title;
138            $bank->debit = $request->debit;
139            $bank->credit = $request->credit;
140            $bank->pointed = $request->pointed;
141            $bank->save();
142
143        } catch (\Exception $e) {
144            return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY);
145        }
146
147        return response(['status' => 'ok'], Response::HTTP_OK);
148    }
149
150    /**
151     * Remove the specified resource from storage.
152     *
153     * @return \Illuminate\Http\Response
154     */
155    public function destroy($id)
156    {
157        try {
158            $bank = BankStmt::find($id);
159            if (!$this->companyIsAttributedToUser($bank->company_id)) {
160                throw new \Exception($this->USER_NOT_ATTRIBUTED_MESSAGE);
161            }
162
163            $bank->delete();
164        } catch (\Exception $e) {
165            return response()->json(['error' => $e->getMessage()], Response::HTTP_UNPROCESSABLE_ENTITY);
166        }
167
168        return response(['status' => 'ok'], Response::HTTP_OK);
169    }
170}