Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
BackendController
n/a
0 / 0
n/a
0 / 0
19
n/a
0 / 0
 viewEntries
n/a
0 / 0
n/a
0 / 0
1
 viewJournalList
n/a
0 / 0
n/a
0 / 0
1
 viewStackList
n/a
0 / 0
n/a
0 / 0
1
 viewStackPredefinedList
n/a
0 / 0
n/a
0 / 0
1
 viewStackCreate
n/a
0 / 0
n/a
0 / 0
1
 viewStackEntries
n/a
0 / 0
n/a
0 / 0
1
 viewStackArchiveList
n/a
0 / 0
n/a
0 / 0
1
 viewCOAList
n/a
0 / 0
n/a
0 / 0
1
 viewCOACreate
n/a
0 / 0
n/a
0 / 0
1
 viewGLProfile
n/a
0 / 0
n/a
0 / 0
1
 viewCostCenterProfile
n/a
0 / 0
n/a
0 / 0
1
 viewImpersonalEntries
n/a
0 / 0
n/a
0 / 0
1
 viewPersonalEntries
n/a
0 / 0
n/a
0 / 0
1
 viewCostCenterList
n/a
0 / 0
n/a
0 / 0
3
 viewCostObjectList
n/a
0 / 0
n/a
0 / 0
3
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   Modules\Accounting
8 * @copyright Dennis Eichhorn
9 * @license   OMS License 2.0
10 * @version   1.0.0
11 * @link      https://jingga.app
12 */
13declare(strict_types=1);
14
15namespace Modules\Accounting\Controller;
16
17use Modules\Accounting\Models\AccountAbstractMapper;
18use Modules\Accounting\Models\CostCenterMapper;
19use Modules\Accounting\Models\CostObjectMapper;
20use phpOMS\Contract\RenderableInterface;
21use phpOMS\Message\RequestAbstract;
22use phpOMS\Message\ResponseAbstract;
23use phpOMS\Views\View;
24
25/**
26 * Controller class.
27 *
28 * @package Modules\Accounting
29 * @license OMS License 2.0
30 * @link    https://jingga.app
31 * @since   1.0.0
32 * @codeCoverageIgnore
33 */
34final class BackendController extends Controller
35{
36    /**
37     * Routing end-point for application behaviour.
38     *
39     * @param RequestAbstract  $request  Request
40     * @param ResponseAbstract $response Response
41     * @param array            $data     Generic data
42     *
43     * @return RenderableInterface
44     *
45     * @since 1.0.0
46     * @codeCoverageIgnore
47     */
48    public function viewEntries(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
49    {
50        $view = new View($this->app->l11nManager, $request, $response);
51        $view->setTemplate('/Modules/Accounting/Theme/Backend/entries');
52        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response);
53
54        return $view;
55    }
56
57    /**
58     * Routing end-point for application behaviour.
59     *
60     * @param RequestAbstract  $request  Request
61     * @param ResponseAbstract $response Response
62     * @param array            $data     Generic data
63     *
64     * @return RenderableInterface
65     *
66     * @since 1.0.0
67     * @codeCoverageIgnore
68     */
69    public function viewJournalList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
70    {
71        $view = new View($this->app->l11nManager, $request, $response);
72        $view->setTemplate('/Modules/Accounting/Theme/Backend/journal-list');
73        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response);
74
75        return $view;
76    }
77
78    /**
79     * Routing end-point for application behaviour.
80     *
81     * @param RequestAbstract  $request  Request
82     * @param ResponseAbstract $response Response
83     * @param array            $data     Generic data
84     *
85     * @return RenderableInterface
86     *
87     * @since 1.0.0
88     * @codeCoverageIgnore
89     */
90    public function viewStackList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
91    {
92        $view = new View($this->app->l11nManager, $request, $response);
93        $view->setTemplate('/Modules/Accounting/Theme/Backend/stack-list');
94        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002605001, $request, $response);
95
96        return $view;
97    }
98
99    /**
100     * Routing end-point for application behaviour.
101     *
102     * @param RequestAbstract  $request  Request
103     * @param ResponseAbstract $response Response
104     * @param array            $data     Generic data
105     *
106     * @return RenderableInterface
107     *
108     * @since 1.0.0
109     * @codeCoverageIgnore
110     */
111    public function viewStackPredefinedList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
112    {
113        $view = new View($this->app->l11nManager, $request, $response);
114        $view->setTemplate('/Modules/Accounting/Theme/Backend/stack-predefined-list');
115        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002605001, $request, $response);
116
117        return $view;
118    }
119
120    /**
121     * Routing end-point for application behaviour.
122     *
123     * @param RequestAbstract  $request  Request
124     * @param ResponseAbstract $response Response
125     * @param array            $data     Generic data
126     *
127     * @return RenderableInterface
128     *
129     * @since 1.0.0
130     * @codeCoverageIgnore
131     */
132    public function viewStackCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
133    {
134        $view = new View($this->app->l11nManager, $request, $response);
135        $view->setTemplate('/Modules/Accounting/Theme/Backend/stack-create');
136        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002605001, $request, $response);
137
138        return $view;
139    }
140
141    /**
142     * Routing end-point for application behaviour.
143     *
144     * @param RequestAbstract  $request  Request
145     * @param ResponseAbstract $response Response
146     * @param array            $data     Generic data
147     *
148     * @return RenderableInterface
149     *
150     * @since 1.0.0
151     * @codeCoverageIgnore
152     */
153    public function viewStackEntries(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
154    {
155        $view = new View($this->app->l11nManager, $request, $response);
156        $view->setTemplate('/Modules/Accounting/Theme/Backend/stack-entries');
157        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002605001, $request, $response);
158
159        return $view;
160    }
161
162    /**
163     * Routing end-point for application behaviour.
164     *
165     * @param RequestAbstract  $request  Request
166     * @param ResponseAbstract $response Response
167     * @param array            $data     Generic data
168     *
169     * @return RenderableInterface
170     *
171     * @since 1.0.0
172     * @codeCoverageIgnore
173     */
174    public function viewStackArchiveList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
175    {
176        $view = new View($this->app->l11nManager, $request, $response);
177        $view->setTemplate('/Modules/Accounting/Theme/Backend/stack-archive-list');
178        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002605001, $request, $response);
179
180        return $view;
181    }
182
183    /**
184     * Routing end-point for application behaviour.
185     *
186     * @param RequestAbstract  $request  Request
187     * @param ResponseAbstract $response Response
188     * @param array            $data     Generic data
189     *
190     * @return RenderableInterface
191     *
192     * @since 1.0.0
193     * @codeCoverageIgnore
194     */
195    public function viewCOAList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
196    {
197        $view = new View($this->app->l11nManager, $request, $response);
198        $view->setTemplate('/Modules/Accounting/Theme/Backend/coa-list');
199        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response);
200
201        $view->data['accounts'] = AccountAbstractMapper::getAll()
202            ->with('l11n')
203            ->where('l11n/language', $response->header->l11n->language)
204            ->execute();
205
206        return $view;
207    }
208
209    /**
210     * Routing end-point for application behaviour.
211     *
212     * @param RequestAbstract  $request  Request
213     * @param ResponseAbstract $response Response
214     * @param array            $data     Generic data
215     *
216     * @return RenderableInterface
217     *
218     * @since 1.0.0
219     * @codeCoverageIgnore
220     */
221    public function viewCOACreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
222    {
223        $view = new View($this->app->l11nManager, $request, $response);
224        $view->setTemplate('/Modules/Accounting/Theme/Backend/coa-create');
225        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response);
226
227        return $view;
228    }
229
230    /**
231     * Routing end-point for application behaviour.
232     *
233     * @param RequestAbstract  $request  Request
234     * @param ResponseAbstract $response Response
235     * @param array            $data     Generic data
236     *
237     * @return RenderableInterface
238     *
239     * @since 1.0.0
240     * @codeCoverageIgnore
241     */
242    public function viewGLProfile(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
243    {
244        $view = new View($this->app->l11nManager, $request, $response);
245        $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
246        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response);
247
248        return $view;
249    }
250
251    /**
252     * Routing end-point for application behaviour.
253     *
254     * @param RequestAbstract  $request  Request
255     * @param ResponseAbstract $response Response
256     * @param array            $data     Generic data
257     *
258     * @return RenderableInterface
259     *
260     * @since 1.0.0
261     * @codeCoverageIgnore
262     */
263    public function viewCostCenterProfile(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
264    {
265        $view = new View($this->app->l11nManager, $request, $response);
266        $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
267        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response);
268
269        return $view;
270    }
271
272    /**
273     * Routing end-point for application behaviour.
274     *
275     * @param RequestAbstract  $request  Request
276     * @param ResponseAbstract $response Response
277     * @param array            $data     Generic data
278     *
279     * @return RenderableInterface
280     *
281     * @since 1.0.0
282     * @codeCoverageIgnore
283     */
284    public function viewImpersonalEntries(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
285    {
286        $view = new View($this->app->l11nManager, $request, $response);
287        $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
288        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response);
289
290        return $view;
291    }
292
293    /**
294     * Routing end-point for application behaviour.
295     *
296     * @param RequestAbstract  $request  Request
297     * @param ResponseAbstract $response Response
298     * @param array            $data     Generic data
299     *
300     * @return RenderableInterface
301     *
302     * @since 1.0.0
303     * @codeCoverageIgnore
304     */
305    public function viewPersonalEntries(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
306    {
307        $view = new View($this->app->l11nManager, $request, $response);
308        $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
309        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response);
310
311        return $view;
312    }
313
314    /**
315     * Routing end-point for application behaviour.
316     *
317     * @param RequestAbstract  $request  Request
318     * @param ResponseAbstract $response Response
319     * @param array            $data     Generic data
320     *
321     * @return RenderableInterface
322     *
323     * @since 1.0.0
324     * @codeCoverageIgnore
325     */
326    public function viewCostCenterList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
327    {
328        $view = new View($this->app->l11nManager, $request, $response);
329        $view->setTemplate('/Modules/Accounting/Theme/Backend/costcenter-list');
330        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002602001, $request, $response);
331
332        if ($request->getData('ptype') === 'p') {
333            $view->data['costcenter'] = CostCenterMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '<')->limit(25)->execute();
334        } elseif ($request->getData('ptype') === 'n') {
335            $view->data['costcenter'] = CostCenterMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '>')->limit(25)->execute();
336        } else {
337            $view->data['costcenter'] = CostCenterMapper::getAll()->where('id', 0, '>')->limit(25)->execute();
338        }
339
340        return $view;
341    }
342
343    /**
344     * Routing end-point for application behaviour.
345     *
346     * @param RequestAbstract  $request  Request
347     * @param ResponseAbstract $response Response
348     * @param array            $data     Generic data
349     *
350     * @return RenderableInterface
351     *
352     * @since 1.0.0
353     * @codeCoverageIgnore
354     */
355    public function viewCostObjectList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
356    {
357        $view = new View($this->app->l11nManager, $request, $response);
358        $view->setTemplate('/Modules/Accounting/Theme/Backend/costobject-list');
359        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002603001, $request, $response);
360
361        if ($request->getData('ptype') === 'p') {
362            $view->data['costobject'] = CostObjectMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '<')->limit(25)->execute();
363        } elseif ($request->getData('ptype') === 'n') {
364            $view->data['costobject'] = CostObjectMapper::getAll()->where('id', $request->getDataInt('id') ?? 0, '>')->limit(25)->execute();
365        } else {
366            $view->data['costobject'] = CostObjectMapper::getAll()->where('id', 0, '>')->limit(25)->execute();
367        }
368
369        return $view;
370    }
371}