Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
7 / 7
CRAP
100.00% covered (success)
100.00%
1 / 1
QueueListHelper
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
7 / 7
12
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getList
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getEstimatedWaitingTime
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getOptimisticWaitingTime
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getClientsBefore
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 createFullList
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 createQueueList
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2
3/**
4 *
5 * @package Zmsadmin
6 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
7 *
8 */
9
10namespace BO\Zmsticketprinter\Helper;
11
12use BO\Mellon\Validator;
13use BO\Zmsentities\Collection\QueueList;
14
15class QueueListHelper
16{
17    protected static $fullList = null;
18
19    protected static $queueList = null;
20
21    protected static $status = ['confirmed', 'queued', 'reserved', 'fake'];
22
23    public function __construct(\BO\Zmsentities\Scope $scope, \BO\Zmsentities\Process $process = null)
24    {
25        static::$fullList = static::createFullList($scope);
26        static::$queueList = static::createQueueList($process);
27    }
28
29    public static function getList()
30    {
31        return static::$queueList;
32    }
33
34    public static function getEstimatedWaitingTime()
35    {
36        return static::getList()->getFakeOrLastWaitingnumber()->waitingTimeEstimate;
37    }
38
39    public static function getOptimisticWaitingTime()
40    {
41        return static::getList()->getFakeOrLastWaitingnumber()->waitingTimeOptimistic;
42    }
43
44    public static function getClientsBefore()
45    {
46        $entity = static::getList()->getFakeOrLastWaitingnumber();
47        return (static::getList()->getQueuePositionByNumber($entity->number));
48    }
49
50    protected static function createFullList($scope)
51    {
52        $fullList = \App::$http
53            ->readGetResult('/scope/' . $scope->getId() . '/queue/')
54            ->getCollection();
55        return ($fullList) ? $fullList : new QueueList();
56    }
57
58    protected static function createQueueList($process)
59    {
60        $queueList = new QueueList();
61        if (static::$fullList->count()) {
62            foreach (static::$fullList->withStatus(self::$status) as $entity) {
63                if (! $process || $entity->number != $process->queue->number) {
64                    $queueList->addEntity($entity);
65                }
66            }
67        }
68        return $queueList;
69    }
70}