1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
businessvaluepersondomain.php
См. документацию.
1
<?php
2
3
4
namespace
Bitrix\Sale\Controller;
5
6
7
use Bitrix\Main\Engine\Response\DataType\Page;
8
use Bitrix\Main\Error;
9
use Bitrix\Main\UI\PageNavigation;
10
use Bitrix\Sale\Internals\BusinessValuePersonDomainTable;
11
use Bitrix\Sale\Result;
12
13
class
BusinessValuePersonDomain
extends
ControllerBase
14
{
15
//region Actions
16
public
function
getFieldsAction
()
17
{
18
$view = $this->getViewManager()
19
->getView($this);
20
21
return
[
'BUSINESS_VALUE_PERSON_DOMAIN'
=>$view->prepareFieldInfos(
22
$view->getFields()
23
)];
24
}
25
26
public
function
listAction
(
PageNavigation
$pageNavigation,
array
$select
= [],
array
$filter
= [],
array
$order
= []):
Page
27
{
28
$select
= empty(
$select
) ? [
'*'
] :
$select
;
29
$order
= empty(
$order
) ? [
'PERSON_TYPE_ID'
=>
'ASC'
] :
$order
;
30
31
$items
= BusinessValuePersonDomainTable::getList(
32
[
33
'select'
=>
$select
,
34
'filter'
=>
$filter
,
35
'order'
=>
$order
,
36
'offset'
=> $pageNavigation->
getOffset
(),
37
'limit'
=> $pageNavigation->
getLimit
(),
38
]
39
)->fetchAll();
40
41
return
new
Page
(
'BUSINESS_VALUE_PERSON_DOMAINS'
,
$items
,
function
() use (
$filter
)
42
{
43
return
BusinessValuePersonDomainTable::getCount([
$filter
]);
44
});
45
}
46
47
public
function
addAction
(
array
$fields
)
48
{
49
$result
=
new
Result
();
50
51
$personTypeId =
$fields
[
'PERSON_TYPE_ID'
];
52
$domain =
$fields
[
'DOMAIN'
];
53
54
$r = $this->
personTypeExists
($personTypeId);
55
56
if
($r->isSuccess())
57
{
58
$r = $this->
exists
($personTypeId);
59
if
($r->isSuccess())
60
{
61
$result
->addError(
new
Error
(
'Duplicate entry for key [personTypeId]'
, 201450000001));
62
}
63
else
64
{
65
BusinessValuePersonDomainTable::add(
array
(
66
'PERSON_TYPE_ID'
=> $personTypeId,
67
'DOMAIN'
=> $domain,
68
));
69
}
70
}
71
else
72
{
73
$result
->addErrors($r->getErrors());
74
}
75
76
if
(
$result
->isSuccess())
77
{
78
return
[
79
'BUSINESS_VALUE_PERSON_DOMAIN'
=>BusinessValuePersonDomainTable::getList([
'filter'
=>[
80
'PERSON_TYPE_ID'
=>$personTypeId,
81
'DOMAIN'
=>$domain
82
]])->fetchAll()[0]
83
];
84
}
85
else
86
{
87
$this->addErrors(
$result
->getErrors());
88
return
null
;
89
}
90
}
91
92
public
function
deleteByFilterAction
(
$fields
)
93
{
94
$r = $this->
checkFields
(
$fields
);
95
96
if
($r->isSuccess())
97
{
98
$r = $this->
existsByFilter
([
99
'PERSON_TYPE_ID'
=>
$fields
[
'PERSON_TYPE_ID'
],
100
'DOMAIN'
=>
$fields
[
'DOMAIN'
]
101
]);
102
if
($r->isSuccess())
103
{
104
$r = BusinessValuePersonDomainTable::delete([
'PERSON_TYPE_ID'
=>
$fields
[
'PERSON_TYPE_ID'
],
'DOMAIN'
=>
$fields
[
'DOMAIN'
]]);
105
}
106
}
107
108
if
($r->isSuccess())
109
{
110
return
true
;
111
}
112
else
113
{
114
$this->addErrors($r->getErrors());
115
return
null
;
116
}
117
}
118
//endregion
119
120
protected
function
getPersonType
($id)
121
{
122
$r =
\Bitrix\Sale\PersonType::getList
([
'filter'
=>[
'ID'
=>$id]])->fetchAll();
123
return
$r? $r[0]:[];
124
}
125
126
protected
function
personTypeExists
($id)
127
{
128
$r =
new
Result
();
129
if
($this->
getPersonType
($id)[
'ID'
]<=0)
130
$r->addError(
new
Error
(
'person type is not exists'
, 201440400002));
131
132
return
$r;
133
}
134
135
protected
function
get
($personTypeId)
136
{
137
$r = BusinessValuePersonDomainTable::getList([
'filter'
=>[
'PERSON_TYPE_ID'
=>$personTypeId]])->fetchAll();
138
return
$r? $r[0]:[];
139
}
140
141
protected
function
exists
($personTypeId)
142
{
143
$r =
new
Result
();
144
if
($this->
get
($personTypeId)[
'PERSON_TYPE_ID'
]<=0)
145
$r->addError(
new
Error
(
'business value person domain is not exists'
, 201440400001));
146
147
return
$r;
148
}
149
150
protected
function
existsByFilter
(
$filter
)
151
{
152
$r =
new
Result
();
153
154
$row = BusinessValuePersonDomainTable::getList([
'filter'
=>[
'PERSON_TYPE_ID'
=>
$filter
[
'PERSON_TYPE_ID'
],
'DOMAIN'
=>
$filter
[
'DOMAIN'
]]])->fetchAll();
155
if
(isset($row[0][
'PERSON_TYPE_ID'
]) ==
false
)
156
$r->addError(
new
Error
(
'business value person domain is not exists'
, 201440400003));
157
158
return
$r;
159
}
160
161
protected
function
checkFields
(
$fields
)
162
{
163
$r =
new
Result
();
164
165
if
(isset(
$fields
[
'PERSON_TYPE_ID'
]) ==
false
&&
$fields
[
'PERSON_TYPE_ID'
] <>
''
)
166
$r->addError(
new
Error
(
'personTypeId - parametrs is empty'
, 201450000002));
167
168
if
(isset(
$fields
[
'DOMAIN'
]) ==
false
&&
$fields
[
'DOMAIN'
] <>
''
)
169
$r->addError(
new
Error
(
'domian - parametrs is empty'
, 201450000003));
170
171
return
$r;
172
}
173
174
protected
function
checkPermissionEntity
(
$name
, $arguments = [])
175
{
176
if
(
$name
==
'deletebyfilter'
)
177
{
178
$r = $this->
checkModifyPermissionEntity
();
179
}
180
else
181
{
182
$r = parent::checkPermissionEntity(
$name
);
183
}
184
return
$r;
185
}
186
187
protected
function
checkModifyPermissionEntity
()
188
{
189
$r =
new
Result
();
190
191
$saleModulePermissions
=
self::getApplication
()->GetGroupRight(
"sale"
);
192
if
(
$saleModulePermissions
<
"W"
)
193
{
194
$r->addError(
new
Error
(
'Access Denied'
, 200040300020));
195
}
196
return
$r;
197
}
198
199
protected
function
checkReadPermissionEntity
()
200
{
201
$r =
new
Result
();
202
203
$saleModulePermissions
=
self::getApplication
()->GetGroupRight(
"sale"
);
204
if
(
$saleModulePermissions
==
"D"
)
205
{
206
$r->addError(
new
Error
(
'Access Denied'
, 200040300010));
207
}
208
return
$r;
209
}
210
}
Bitrix\Main\Error
Определения
error.php:15
Bitrix\Main\UI\PageNavigation
Определения
pagenavigation.php:27
Bitrix\Main\UI\PageNavigation\getLimit
getLimit()
Определения
pagenavigation.php:252
Bitrix\Main\UI\PageNavigation\getOffset
getOffset()
Определения
pagenavigation.php:239
Bitrix\Sale\Controller\BusinessValuePersonDomain
Определения
businessvaluepersondomain.php:14
Bitrix\Sale\Controller\BusinessValuePersonDomain\deleteByFilterAction
deleteByFilterAction($fields)
Определения
businessvaluepersondomain.php:92
Bitrix\Sale\Controller\BusinessValuePersonDomain\checkModifyPermissionEntity
checkModifyPermissionEntity()
Определения
businessvaluepersondomain.php:187
Bitrix\Sale\Controller\BusinessValuePersonDomain\checkReadPermissionEntity
checkReadPermissionEntity()
Определения
businessvaluepersondomain.php:199
Bitrix\Sale\Controller\BusinessValuePersonDomain\exists
exists($personTypeId)
Определения
businessvaluepersondomain.php:141
Bitrix\Sale\Controller\BusinessValuePersonDomain\addAction
addAction(array $fields)
Определения
businessvaluepersondomain.php:47
Bitrix\Sale\Controller\BusinessValuePersonDomain\personTypeExists
personTypeExists($id)
Определения
businessvaluepersondomain.php:126
Bitrix\Sale\Controller\BusinessValuePersonDomain\getPersonType
getPersonType($id)
Определения
businessvaluepersondomain.php:120
Bitrix\Sale\Controller\BusinessValuePersonDomain\existsByFilter
existsByFilter($filter)
Определения
businessvaluepersondomain.php:150
Bitrix\Sale\Controller\BusinessValuePersonDomain\getFieldsAction
getFieldsAction()
Определения
businessvaluepersondomain.php:16
Bitrix\Sale\Controller\BusinessValuePersonDomain\listAction
listAction(PageNavigation $pageNavigation, array $select=[], array $filter=[], array $order=[])
Определения
businessvaluepersondomain.php:26
Bitrix\Sale\Controller\BusinessValuePersonDomain\checkFields
checkFields($fields)
Определения
businessvaluepersondomain.php:161
Bitrix\Sale\Controller\BusinessValuePersonDomain\checkPermissionEntity
checkPermissionEntity($name, $arguments=[])
Определения
businessvaluepersondomain.php:174
Bitrix\Sale\Controller\ControllerBase
Определения
controllerbase.php:15
Bitrix\Sale\Controller\ControllerBase\getApplication
static getApplication()
Определения
controllerbase.php:39
Bitrix\Sale\PersonType\getList
static getList(array $parameters=[])
Определения
persontype.php:100
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$result
$result
Определения
get_property_values.php:14
$select
$select
Определения
iblock_catalog_list.php:194
$filter
$filter
Определения
iblock_catalog_list.php:54
$name
$name
Определения
menu_edit.php:35
Bitrix\Main\Page
Определения
aliases.php:54
Bitrix\Sale\Discount\Result
Определения
compatibleformat.php:2
$order
$order
Определения
payment.php:8
$saleModulePermissions
$saleModulePermissions
Определения
tools.php:21
$items
$items
Определения
template.php:224
$fields
$fields
Определения
yandex_run.php:501
bitrix
modules
sale
lib
controller
businessvaluepersondomain.php
Создано системой
1.14.0