Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
27 / 27
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
ProcessStatusQueued
100.00% covered (success)
100.00%
27 / 27
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 writeNewFromTicketprinter
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
1
 writeNewFromAdmin
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
2
 readByQueueNumberAndScope
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace BO\Zmsbackend\Process\Service;
4
5use BO\Zmsentities\Process as Entity;
6use BO\Zmsentities\Collection\ProcessList as Collection;
7
8class ProcessStatusQueued extends Process
9{
10    public function writeNewFromTicketprinter(
11        \BO\Zmsentities\Scope $scope,
12        \DateTimeInterface $dateTime,
13        array $requestIds = []
14    ): Entity {
15        $process = Entity::createFromScope($scope, $dateTime);
16        $process->setStatus('queued');
17        $process->isTicketprinter = true;
18        $newQueueNumber = (new \BO\Zmsbackend\Scope\Service\Scope())->readWaitingNumberUpdated($scope->id, $dateTime);
19        $process->addQueue($newQueueNumber, $dateTime);
20        $process = $this->writeNewProcess($process, $dateTime);
21
22        $process->updateRequests($scope->getSource(), implode(',', $requestIds));
23        $this->writeRequestsToDb($process);
24
25        return $process;
26    }
27
28    public function writeNewFromAdmin(Entity $process, \DateTimeInterface $dateTime): Entity|null
29    {
30        $process->setStatus('queued');
31        $process->getFirstAppointment()->date = $dateTime->modify('00:00:00')->getTimestamp();
32        $newQueueNumber = (new \BO\Zmsbackend\Scope\Service\Scope())->readWaitingNumberUpdated($process->scope['id'], $dateTime, false);
33        $process->addQueue($newQueueNumber, $dateTime);
34        $process = $this->writeNewProcess($process, $dateTime);
35        if (0 < $process->getRequests()->count()) {
36            $this->writeRequestsToDb($process);
37        }
38        return $this->readEntity($process->id, $process->authKey, 2);
39    }
40
41    /**
42     * Read process by queue number and scopeId
43     *
44     * @param
45     * scopeId
46     *
47     * @return string authKey
48     */
49    public function readByQueueNumberAndScope($queueNumber, $scopeId, $resolveReferences = 0, $queueLimit = 10000)
50    {
51        $query = new \BO\Zmsbackend\Process\Repository\Process(\BO\Zmsbackend\Query\Base::SELECT);
52        $query
53            ->addEntityMapping()
54            ->addResolvedReferences($resolveReferences)
55            ->addConditionScopeId($scopeId)
56            ->addConditionAssigned()
57            ->addConditionQueueNumber($queueNumber, $queueLimit);
58        $process = $this->fetchOne($query, new Entity());
59        $process = $this->readResolvedReferences($process, $resolveReferences);
60        return $process;
61    }
62}