Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
TicketprinterByScope
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
5.00
0.00% covered (danger)
0.00%
0 / 1
 readResponse
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
5.00
1<?php
2
3/**
4 *
5 * @package Zmsticketprinter
6 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
7 *
8 */
9
10namespace BO\Zmsticketprinter;
11
12use BO\Slim\Render;
13use Psr\Http\Message\RequestInterface;
14use Psr\Http\Message\ResponseInterface;
15use BO\Zmsticketprinter\Helper\QueueListHelper;
16use BO\Zmsticketprinter\Helper\TemplateFinder;
17
18class TicketprinterByScope extends BaseController
19{
20    /**
21     * @SuppressWarnings(UnusedFormalParameter)
22     * @return ResponseInterface
23     */
24    public function readResponse(
25        RequestInterface $request,
26        ResponseInterface $response,
27        array $args
28    ) {
29        Helper\HomeUrl::create($request);
30
31        $validator = $request->getAttribute('validator');
32        $defaultTemplate = $validator->getParameter("template")
33            ->isPath()
34            ->setDefault('default')
35            ->getValue();
36        $ticketprinterHelper = (new Helper\Ticketprinter($args, $request));
37        $ticketprinter = $ticketprinterHelper->getEntity();
38        $scope = $ticketprinter->getScopeList()->getFirst();
39        $department = \App::$http->readGetResult('/scope/' . $scope->id . '/department/')->getEntity();
40        $organisation = $ticketprinterHelper->getOrganisation();
41
42        $queueListHelper = new QueueListHelper($scope);
43
44        $template = (new TemplateFinder($defaultTemplate))->setCustomizedTemplate($ticketprinter, $organisation);
45
46        $hasDisabledButton = false;
47        foreach ($ticketprinter->buttons as $button) {
48            if (!isset($button['enabled']) || $button['enabled'] != 1) {
49                $hasDisabledButton = true;
50                break;
51            }
52        }
53
54        return Render::withHtml(
55            $response,
56            $template->getTemplate(),
57            array(
58                'debug' => \App::DEBUG,
59                'enabled' => $ticketprinter->isEnabled()
60                    || !$organisation->getPreference('ticketPrinterActivation'),
61                'title' => 'Wartennumer ziehen',
62                'ticketprinter' => $ticketprinter,
63                'organisation' => $organisation,
64                'department' => $department,
65                'scope' => $scope,
66                'queueList' => $queueListHelper->getList(),
67                'waitingTime' => $queueListHelper->getEstimatedWaitingTime(),
68                'waitingTimeOptimistic' => $queueListHelper->getOptimisticWaitingTime(),
69                'waitingClients' => $queueListHelper->getClientsBefore(),
70                'buttonDisplay' => $template->getButtonTemplateType($ticketprinter),
71                'hasDisabledButton' => $hasDisabledButton
72            )
73        );
74    }
75}