Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
SendProcessListToScopeAdmin
n/a
0 / 0
n/a
0 / 0
12
n/a
0 / 0
 __construct
n/a
0 / 0
n/a
0 / 0
3
 startProcessing
n/a
0 / 0
n/a
0 / 0
7
 sendListToQueue
n/a
0 / 0
n/a
0 / 0
2
1<?php
2
3namespace BO\Zmsdb\Helper;
4
5/**
6 * @codeCoverageIgnore
7 */
8class SendProcessListToScopeAdmin
9{
10    protected $scopeList;
11
12    protected $datetime;
13
14    protected $verbose = false;
15
16    public function __construct($verbose = false, $scopeId = false)
17    {
18        $this->dateTime = new \DateTimeImmutable();
19        if ($verbose) {
20            error_log("INFO: Send process list of current day to scope admin");
21            $this->verbose = true;
22        }
23        if ($scopeId) {
24            $scope = (new \BO\Zmsdb\Scope())->readEntity($scopeId);
25            $this->scopeList = (new \BO\Zmsentities\Collection\ScopeList())->addEntity($scope);
26        } else {
27            $this->scopeList = (new \BO\Zmsdb\Scope())->readListWithScopeAdminEmail(1);
28        }
29    }
30
31    public function startProcessing($commit)
32    {
33        foreach ($this->scopeList as $scope) {
34            if ($this->verbose) {
35                error_log("INFO: Processing $scope");
36            }
37            if ($commit) {
38                $processList = (new \BO\Zmsdb\Process())
39                    ->readProcessListByScopeAndTime($scope->getId(), $this->dateTime, 1);
40                $processList = $processList
41                   ->toQueueList($this->dateTime)
42                   ->withStatus(array('confirmed', 'queued', 'reserved'))
43                   ->withSortedArrival()
44                   ->toProcessList();
45                if (0 <= $processList->count()) {
46                    if ($this->sendListToQueue($scope, $processList) && $this->verbose) {
47                        error_log('INFO: Send processList to:' . $scope->getContactEmail());
48                    }
49                } else {
50                    error_log("WARNING: Processlist empty for $scope->id");
51                }
52            }
53        }
54    }
55
56    protected function sendListToQueue($scope, $processList)
57    {
58        $entity = (new \BO\Zmsentities\Mail())->toScopeAdminProcessList($processList, $scope, $this->dateTime);
59        if (! (new \BO\Zmsdb\Mail())->writeInQueueWithDailyProcessList($scope, $entity)) {
60            error_log("WARNING: Mail writing in queue not successfull empty!");
61        }
62    }
63}