Passed
Push — develop ( d5179e...bede24 )
by Портнов
05:56 queued 11s
created

ActionTransferCheck   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 12
c 1
b 0
f 0
dl 0
loc 21
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A execute() 0 19 2
1
<?php
2
3
4
namespace MikoPBX\Core\Workers\Libs\WorkerCallEvents;
5
6
7
use MikoPBX\Common\Models\CallDetailRecordsTmp;
8
use MikoPBX\Core\Workers\WorkerCallEvents;
9
10
class ActionTransferCheck {
11
12
    public static function execute(WorkerCallEvents $worker, $data):void
13
    {
14
        $filter = [
15
            'linkedid=:linkedid: AND endtime = "" AND transfer=0 AND (src_chan=:src_chan: OR dst_chan=:src_chan:)',
16
            'bind' => [
17
                'linkedid' => $data['linkedid'],
18
                'src_chan' => $data['src_chan'],
19
            ],
20
        ];
21
        /** @var CallDetailRecordsTmp $m_data */
22
        /** @var CallDetailRecordsTmp $row */
23
        $m_data = CallDetailRecordsTmp::find($filter);
24
        foreach ($m_data as $row) {
25
            // Пробуем остановить записть разговора.
26
            $worker->StopMixMonitor($row->dst_chan);
27
            $worker->StopMixMonitor($row->src_chan);
28
            // Установим признак переадресации.
29
            $row->writeAttribute('transfer', 1);
30
            $row->save();
31
        }
32
    }
33
}