Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Counter
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
2 / 2
6
100.00% covered (success)
100.00%
1 / 1
 readResponse
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
1 / 1
3
 getSelectedDate
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3/**
4 * @package Zmsadmin
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsadmin;
9
10class Counter extends BaseController
11{
12    /**
13     * @SuppressWarnings(Param)
14     * @return String
15     */
16    public function readResponse(
17        \Psr\Http\Message\RequestInterface $request,
18        \Psr\Http\Message\ResponseInterface $response,
19        array $args
20    ) {
21        $workstation = \App::$http->readGetResult('/workstation/', ['resolveReferences' => 2])->getEntity();
22        $validator = $request->getAttribute('validator');
23        $selectedTime = $validator->getParameter('time')->isString()->getValue();
24        $selectedTime = ($selectedTime) ? $selectedTime : null;
25        $selectedProcess = $validator->getParameter('selectedprocess')->isNumber()->getValue();
26        $selectedScope = $validator->getParameter('selectedscope')->isNumber()->getValue();
27
28        if (!$workstation->hasId()) {
29            return \BO\Slim\Render::redirect(
30                'index',
31                array(
32                    'error' => 'login_failed'
33                )
34            );
35        }
36
37        return \BO\Slim\Render::withHtml(
38            $response,
39            'page/counter.twig',
40            array(
41                'title' => 'Tresen',
42                'menuActive' => 'counter',
43                'selectedDate' => $this->getSelectedDate($validator),
44                'selectedTime' => $selectedTime,
45                'selectedProcess' => $selectedProcess,
46                'selectedScope' => $selectedScope,
47                'workstation' => $workstation->getArrayCopy()            )
48        );
49    }
50
51    protected function getSelectedDate($validator)
52    {
53        $selectedDate = $validator->getParameter('date')->isString()->getValue();
54        $selectedDateTime = $selectedDate ?
55            (new \DateTimeImmutable($selectedDate))->setTime(\App::$now->format('H'), \App::$now->format('i')) :
56            \App::$now;
57        $selectedDate = ($selectedDateTime < \App::$now) ? \App::$now : $selectedDateTime;
58        return $selectedDate->format('Y-m-d');
59    }
60}