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