Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
95.00% covered (success)
95.00%
38 / 40
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
TicketprinterByScope
95.00% covered (success)
95.00%
38 / 40
0.00% covered (danger)
0.00%
0 / 1
5
0.00% covered (danger)
0.00%
0 / 1
 readResponse
95.00% covered (success)
95.00%
38 / 40
0.00% covered (danger)
0.00%
0 / 1
5
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        $config = \App::$http->readGetResult('/config/', [], \App::SECURE_TOKEN)->getEntity();
32        $validator = $request->getAttribute('validator');
33        $defaultTemplate = $validator->getParameter("template")
34            ->isPath()
35            ->setDefault('default')
36            ->getValue();
37        $ticketprinterHelper = (new Helper\Ticketprinter($args, $request));
38        $ticketprinter = $ticketprinterHelper->getEntity();
39        $scope = $ticketprinter->getScopeList()->getFirst();
40        $department = \App::$http->readGetResult('/scope/' . $scope->id . '/department/')->getEntity();
41        $organisation = $ticketprinterHelper->getOrganisation();
42
43        $queueListHelper = new QueueListHelper($scope);
44
45        $template = (new TemplateFinder($defaultTemplate))->setCustomizedTemplate($ticketprinter, $organisation);
46
47        $hasDisabledButton = false;
48        foreach ($ticketprinter->buttons as $button) {
49            if (!isset($button['enabled']) || $button['enabled'] != 1) {
50                $hasDisabledButton = true;
51                break;
52            }
53        }
54
55        return Render::withHtml(
56            $response,
57            $template->getTemplate(),
58            array(
59                'debug' => \App::DEBUG,
60                'enabled' => $ticketprinter->isEnabled()
61                    || !$organisation->getPreference('ticketPrinterProtectionEnabled'),
62                'title' => 'Wartennumer ziehen',
63                'ticketprinter' => $ticketprinter,
64                'organisation' => $organisation,
65                'department' => $department,
66                'scope' => $scope,
67                'queueList' => $queueListHelper->getList(),
68                'waitingTime' => $queueListHelper->getEstimatedWaitingTime(),
69                'waitingTimeOptimistic' => $queueListHelper->getOptimisticWaitingTime(),
70                'waitingClients' => $queueListHelper->getClientsBefore(),
71                'buttonDisplay' => $template->getButtonTemplateType($ticketprinter),
72                'config' => $config,
73                'hasDisabledButton' => $hasDisabledButton
74            )
75        );
76    }
77}