1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
CrmSharingStrategy.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Calendar\Relation\Strategy
;
4
5
use
Bitrix\Calendar\Integration\Crm\DealHandler
;
6
use
Bitrix\Calendar\Relation\Builder\Entity\EntityBuilderFromDeal
;
7
use
Bitrix\Calendar\Relation\Builder\Owner\OwnerBuilder
;
8
use
Bitrix\Calendar\Relation\Item\Relation
;
9
use
Bitrix\Calendar\Relation\Exception\RelationException
;
10
use
Bitrix\Calendar\Sharing\Link\CrmDealLink
;
11
use
Bitrix\Calendar\Sharing\Link\EventLink
;
12
use
Bitrix\Calendar\Sharing
;
13
use Bitrix\Crm\EO_Deal;
14
15
class
CrmSharingStrategy
extends
RelationStrategy
16
{
20
public
function
getRelation
():
Relation
21
{
22
$relation =
new
Relation
($this->event->getId());
24
$eventLink =
Sharing\Link\Factory::getInstance
()->getEventLinkByEventId($this->event->getId(),
false
);
25
if
(!$eventLink)
26
{
27
throw
new
RelationException
(
'Event sharing link not found'
);
28
}
29
31
$crmDealLink =
Sharing\Link\Factory::getInstance
()->getLinkByHash($eventLink->getParentLinkHash());
32
if
(!$crmDealLink)
33
{
34
throw
new
RelationException
(
'Deal sharing link not found'
);
35
}
36
38
$deal = DealHandler::getDeal($crmDealLink->getEntityId());
39
if
(!$deal)
40
{
41
throw
new
RelationException
(
'Deal not found'
);
42
}
43
44
$entity
= (
new
EntityBuilderFromDeal
($deal))->build();
45
$relation->setEntity(
$entity
);
46
47
$owner = (
new
OwnerBuilder
($deal->getAssignedById()))->build();
48
$relation->setOwner($owner);
49
50
return
$relation;
51
}
52
}
Bitrix\Calendar\Integration\Crm\DealHandler
Определения
dealhandler.php:9
Bitrix\Calendar\Relation\Builder\Entity\EntityBuilderFromDeal
Определения
EntityBuilderFromDeal.php:8
Bitrix\Calendar\Relation\Builder\Owner\OwnerBuilder
Определения
OwnerBuilder.php:8
Bitrix\Calendar\Relation\Exception\RelationException
Определения
RelationException.php:8
Bitrix\Calendar\Relation\Item\Relation
Определения
Relation.php:8
Bitrix\Calendar\Relation\Strategy\CrmSharingStrategy
Определения
CrmSharingStrategy.php:16
Bitrix\Calendar\Relation\Strategy\RelationStrategy
Определения
RelationStrategy.php:10
Bitrix\Calendar\Relation\Strategy\RelationStrategy\getRelation
getRelation()
Bitrix\Calendar\Sharing\Link\CrmDealLink
Определения
crmdeallink.php:8
Bitrix\Calendar\Sharing\Link\EventLink
Определения
eventlink.php:5
Bitrix\Calendar\Sharing\Link\Factory\getInstance
static getInstance()
Определения
factory.php:24
Bitrix\Main\ORM\Fields\Relations\Relation
Определения
relation.php:26
$entity
$entity
Определения
group_bizproc_workflow_delete.php:17
Bitrix\Calendar\Relation\Strategy
Определения
CrmSharingStrategy.php:3
Bitrix\Calendar\Sharing
Определения
analytics.php:3
bitrix
modules
calendar
lib
Relation
Strategy
CrmSharingStrategy.php
Создано системой
1.14.0