Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
26 / 26
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
ProcessStatusQueued
100.00% covered (success)
100.00%
26 / 26
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 writeNewFromTicketprinter
100.00% covered (success)
100.00%
8 / 8
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        $newQueueNumber = (new Scope())->readWaitingNumberUpdated($scope->id, $dateTime);
21        $process->addQueue($newQueueNumber, $dateTime);
22        $process = $this->writeNewProcess($process, $dateTime);
23
24        $process->updateRequests($scope->getSource(), implode(',', $requestIds));
25        $this->writeRequestsToDb($process);
26
27        return $process;
28    }
29
30    public function writeNewFromAdmin(Entity $process, \DateTimeInterface $dateTime)
31    {
32        $process->setStatus('queued');
33        $process->getFirstAppointment()->date = $dateTime->modify('00:00:00')->getTimestamp();
34        $newQueueNumber = (new Scope())->readWaitingNumberUpdated($process->scope['id'], $dateTime, false);
35        $process->addQueue($newQueueNumber, $dateTime);
36        $process = $this->writeNewProcess($process, $dateTime);
37        if (0 < $process->getRequests()->count()) {
38            $this->writeRequestsToDb($process);
39        }
40        return $this->readEntity($process->id, $process->authKey, 2);
41    }
42
43    /**
44     * Read process by queue number and scopeId
45     *
46     * @param
47     * scopeId
48     *
49     * @return String authKey
50     */
51    public function readByQueueNumberAndScope($queueNumber, $scopeId, $resolveReferences = 0, $queueLimit = 10000)
52    {
53        $query = new Query\Process(Query\Base::SELECT);
54        $query
55            ->addEntityMapping()
56            ->addResolvedReferences($resolveReferences)
57            ->addConditionScopeId($scopeId)
58            ->addConditionAssigned()
59            ->addConditionQueueNumber($queueNumber, $queueLimit);
60        $process = $this->fetchOne($query, new Entity());
61        $process = $this->readResolvedReferences($process, $resolveReferences);
62        return $process;
63    }
64}