1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
b24integrationstattable.php
См. документацию.
1
<?php
2
namespace
Bitrix\Sale\Exchange\Integration\Entity;
3
4
use Bitrix\Main;
5
use Bitrix\Main\Application;
6
use Bitrix\Main\ArgumentException;
7
use Bitrix\Main\ORM\Data\AddResult;
8
use Bitrix\Sale\Exchange\Integration\EntityType;
9
26
class
B24integrationStatTable
extends
Main\Entity\DataManager
27
{
28
public
static
function
getTableName
(): string
29
{
30
return
'b_sale_b24integration_stat'
;
31
}
32
36
public
static
function
getMap
():
array
37
{
38
return
[
39
new
Main\Entity\IntegerField(
'ID'
, [
'primary'
=>
true
,
'autocomplete'
=>
true
]),
40
new
Main\Entity\EnumField(
'ENTITY_TYPE_ID'
, [
41
'required'
=>
true
,
42
'values'
=> [
43
EntityType::ORDER
,
44
]]),
45
new
Main\Entity\IntegerField(
'ENTITY_ID'
, [
'required'
=>
true
]),
46
new
Main\Entity\DatetimeField(
'DATE_UPDATE'
),
47
new
Main\Entity\DatetimeField(
'TIMESTAMP_X'
, [
'default_value'
=>
new
Main
\
Type
\
DateTime
()]),
48
new
Main\Entity\IntegerField(
'PROVIDER_ID'
, [
'required'
=>
true
]),
49
new
Main\Entity\StringField(
"CURRENCY"
, [
'required'
=>
true
]),
50
new
Main\Entity\EnumField(
"STATUS"
, [
51
'required'
=>
true
,
52
'values'
=> [
53
StatusType::SUCCESS_NAME
,
54
StatusType::PROCESS_NAME
,
55
StatusType::FAULTY_NAME
56
]]),
57
new
Main\Entity\StringField(
"XML_ID"
, [
'required'
=>
true
]),
58
new
Main\Entity\FloatField(
"AMOUNT"
, [
'required'
=>
true
]),
59
];
60
}
61
62
protected
static
function
upsertPrepareParams
(
array
$data
):
array
63
{
64
$entityTypeID = (int)(
$data
[
'ENTITY_TYPE_ID'
] ??
EntityType::UNDEFINED
);
65
$entityID = (int)(
$data
[
'ENTITY_ID'
] ?? 0);
66
$providerID = (int)(
$data
[
'PROVIDER_ID'
] ?? 0);
67
$dateUpdate =
$data
[
'DATE_UPDATE'
] ??
null
;
68
$currency
=
$data
[
'CURRENCY'
] ??
null
;
69
$status
=
$data
[
'STATUS'
] ??
null
;
70
$xmlId =
$data
[
'XML_ID'
] ??
null
;
71
$amount
= (float)(
$data
[
'AMOUNT'
] ?? 0.0);
72
73
return
[
74
'ENTITY_TYPE_ID'
=> $entityTypeID,
75
'ENTITY_ID'
=> $entityID,
76
'DATE_UPDATE'
=> $dateUpdate,
77
'TIMESTAMP_X'
=>
new
Main\DB\SqlExpression
(
78
Main
\Application::getConnection()->getSqlHelper()->getCurrentDateTimeFunction()
79
),
80
'PROVIDER_ID'
=> $providerID,
81
'CURRENCY'
=>
$currency
,
82
'STATUS'
=>
$status
,
83
'XML_ID'
=> $xmlId,
84
'AMOUNT'
=>
$amount
,
85
];
86
}
87
95
public
static
function
upsert
(
array
$data
):
AddResult
96
{
97
$result
=
new
AddResult
();
98
$connection
=
Main\Application::getConnection
();
99
100
static::checkFields(
$result
,
null
,
$data
);
101
if
(!
$result
->isSuccess())
102
{
103
return
$result
;
104
}
105
106
$updateFields = $insertFields = static::upsertPrepareParams(
$data
);
107
108
$queries =
$connection
->getSqlHelper()->prepareMerge(
109
static::getTableName(),
110
[
111
'ENTITY_TYPE_ID'
,
112
'ENTITY_ID'
113
],
114
$insertFields,
115
$updateFields
116
);
117
118
foreach
($queries as
$query
)
119
{
120
$connection
->queryExecute(
$query
);
121
}
122
123
$result
->setId(
124
$connection
->getInsertedId()
125
);
126
127
return
$result
;
128
}
129
138
public
static
function
modify
(
array
$items
):
AddResult
139
{
140
$connection
=
Main\Application::getConnection
();
141
$helper =
$connection
->getSqlHelper();
142
143
$r = static::checkModifyFields(
$items
);
144
if
(!$r->isSuccess())
145
{
146
return
$r;
147
}
148
149
$names = [
150
'ENTITY_TYPE_ID'
,
151
'ENTITY_ID'
,
152
'DATE_UPDATE'
,
153
'TIMESTAMP_X'
,
154
'PROVIDER_ID'
,
155
'CURRENCY'
,
156
'STATUS'
,
157
'XML_ID'
,
158
'AMOUNT'
,
159
];
160
161
$values = [];
162
foreach
(
$items
as $item)
163
{
164
$values[] = static::upsertPrepareParams($item);
165
}
166
167
$query
= $helper->prepareMergeValues(
168
static::getTableName(),
169
[
170
'ENTITY_ID'
,
171
'ENTITY_TYPE_ID'
,
172
'PROVIDER_ID'
,
173
],
174
$values,
175
$names
176
);
177
178
$connection
->queryExecute(
$query
);
179
180
return
$r;
181
}
182
189
protected
static
function
checkModifyFields
(
array
$list):
AddResult
190
{
191
$result
=
new
AddResult
();
192
$error
= [];
193
194
foreach
($list as
$k
=>
$fields
)
195
{
196
$r =
new
AddResult
();
197
198
static::checkFields($r,
null
,
$fields
);
199
if
(!$r->isSuccess())
200
{
201
$error
[] =
'['
.$k.
'] '
.implode(
', '
, $r->getErrorMessages()).
'.'
;
202
}
203
}
204
205
if
(!empty(
$error
))
206
{
207
$result
->addError(
new
Main
\
Error
(implode(
', '
,
$error
)));
208
}
209
210
return
$result
;
211
}
212
}
$connection
$connection
Определения
actionsdefinitions.php:38
Bitrix\Main\Application\getConnection
static getConnection($name="")
Определения
application.php:638
Bitrix\Main\DB\SqlExpression
Определения
sqlexpression.php:21
Bitrix\Main\Error
Определения
error.php:15
Bitrix\Main\ORM\Data\AddResult
Определения
addresult.php:12
Bitrix\Main\Type\DateTime
Определения
datetime.php:9
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable
Определения
b24integrationstattable.php:27
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable\checkModifyFields
static checkModifyFields(array $list)
Определения
b24integrationstattable.php:189
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable\modify
static modify(array $items)
Определения
b24integrationstattable.php:138
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable\getMap
static getMap()
Определения
b24integrationstattable.php:36
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable\upsertPrepareParams
static upsertPrepareParams(array $data)
Определения
b24integrationstattable.php:62
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable\upsert
static upsert(array $data)
Определения
b24integrationstattable.php:95
Bitrix\Sale\Exchange\Integration\Entity\B24integrationStatTable\getTableName
static getTableName()
Определения
b24integrationstattable.php:28
Bitrix\Sale\Exchange\Integration\Entity\StatusType\SUCCESS_NAME
const SUCCESS_NAME
Определения
statustype.php:16
Bitrix\Sale\Exchange\Integration\Entity\StatusType\PROCESS_NAME
const PROCESS_NAME
Определения
statustype.php:17
Bitrix\Sale\Exchange\Integration\Entity\StatusType\FAULTY_NAME
const FAULTY_NAME
Определения
statustype.php:18
Bitrix\Sale\Exchange\Integration\EntityType\ORDER
const ORDER
Определения
entitytype.php:12
Bitrix\Sale\Exchange\Integration\EntityType\UNDEFINED
const UNDEFINED
Определения
entitytype.php:11
$data
$data['IS_AVAILABLE']
Определения
.description.php:13
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
$query
$query
Определения
get_search.php:11
$status
$status
Определения
session.php:10
Bitrix\Main\Type
Определения
collection.php:2
Bitrix\Main
$amount
if(!function_exists("bx_hmac")) $amount
Определения
payment.php:30
$currency
$currency
Определения
template.php:266
$items
$items
Определения
template.php:224
$error
$error
Определения
subscription_card_product.php:20
$k
$k
Определения
template_pdf.php:567
$fields
$fields
Определения
yandex_run.php:501
bitrix
modules
sale
lib
exchange
integration
entity
b24integrationstattable.php
Создано системой
1.14.0