39 return Internals\BasketTable::getList($parameters);
49 public static function deleteNoDemand($idOrder)
53 $itemsDataList = static::getList(
55 "filter" =>
array(
"=ORDER_ID" => $idOrder),
56 "select" =>
array(
"ID",
"TYPE")
61 $itemClassName = static::getItemCollectionClassName();
62 while ($item = $itemsDataList->fetch())
64 if ($item[
'TYPE'] === $itemClassName::TYPE_SET)
70 $r = Internals\BasketTable::deleteWithItems($item[
'ID']);
75 $result->addErrors($r->getErrors());
94 $query = $helper->prepareDeleteLimit(
99 SELECT b_sale_fuser.ID FROM b_sale_fuser WHERE
100 b_sale_fuser.DATE_UPDATE < " . $helper->addDaysToDateTime(-$days) .
"
101 AND b_sale_fuser.USER_ID IS NULL
102 ) AND ORDER_ID IS NULL
105 static::BASKET_DELETE_LIMIT
111 $query = $helper->prepareDeleteLimit(
115 FUSER_ID NOT IN (SELECT b_sale_fuser.ID FROM b_sale_fuser)
119 static::BASKET_DELETE_LIMIT
123 $affectRows = max($affectRows,
$connection->getAffectedRowsCount());
125 $query = $helper->prepareDeleteLimit(
130 SELECT b_sale_basket.ID FROM b_sale_basket
134 static::BASKET_DELETE_LIMIT
139 return max($affectRows,
$connection->getAffectedRowsCount());
151 $affectRows = static::deleteOld($days);
154 $days = (int)
Main\
Config\Option::get(
'sale',
'delete_after');
155 $result =
"\Bitrix\Sale\Basket::deleteOldAgent(" . $days .
");";
157 if ($affectRows === static::BASKET_DELETE_LIMIT)
173 public function getListOfFormatText()
178 $basketItemClassName = static::getItemCollectionClassName();
181 foreach ($this->collection as $basketItem)
183 $basketItemData = $basketItem->getField(
"NAME");
186 if ($basketPropertyCollection = $basketItem->getPropertyCollection())
188 $basketItemDataProperty =
"";
190 foreach ($basketPropertyCollection as $basketPropertyItem)
192 if ($basketPropertyItem->getField(
'CODE') ==
"PRODUCT.XML_ID"
193 || $basketPropertyItem->getField(
'CODE') ==
"CATALOG.XML_ID"
194 || $basketPropertyItem->getField(
'CODE') ==
"SUM_OF_CHARGE"
200 if (strval(trim($basketPropertyItem->getField(
'VALUE'))) ==
"")
204 $basketItemDataProperty .= (!empty($basketItemDataProperty) ?
"; " :
"").trim($basketPropertyItem->getField(
'NAME')).
": ".trim($basketPropertyItem->getField(
'VALUE'));
207 if (!empty($basketItemDataProperty))
208 $basketItemData .=
" [".$basketItemDataProperty.
"]";
211 $measure = (strval(
$basketItem->getField(
"MEASURE_NAME")) !=
'') ?
$basketItem->getField(
"MEASURE_NAME") : Loc::getMessage(
"SOA_SHT");
216 return !empty($list) ? $list :
false;
224 public function save()
226 $result = parent::save();
234 $orderHistory = $registry->getOrderHistoryClassName();
235 $orderHistory::collectEntityFields(
'BASKET',
$orderId);
253 $itemClassName = static::getItemCollectionClassName();
254 if ($itemValues[
'TYPE'] == $itemClassName::TYPE_SET)
256 $r = Internals\BasketTable::deleteBundle($itemValues[
'ID']);
260 $r = Internals\BasketTable::deleteWithItems($itemValues[
'ID']);
263 if (!$r->isSuccess())
265 $result->addErrors($r->getErrors());
274 $orderHistory = $registry->getOrderHistoryClassName();
275 $orderHistory::addLog(
278 'BASKET_ITEM_DELETED',
282 "PRODUCT_ID" => $itemValues[
"PRODUCT_ID"],
283 "NAME" => $itemValues[
"NAME"],
284 "QUANTITY" => $itemValues[
"QUANTITY"],
286 $orderHistory::SALE_ORDER_HISTORY_LOG_LEVEL_1
300 parent::callEventOnSaleBasketItemDeleted($itemValues);
308 $orderHistory = $registry->getOrderHistoryClassName();
309 $orderHistory::addAction(
316 'NAME' => $itemValues[
'NAME'],
317 'QUANTITY' => $itemValues[
'QUANTITY'],
318 'PRODUCT_ID' => $itemValues[
'PRODUCT_ID'],
323 $entityMarker = $registry->getEntityMarkerClassName();
324 $entityMarker::deleteByFilter(
array(
326 '=ENTITY_TYPE' => $entityMarker::ENTITY_TYPE_BASKET_ITEM,
327 '=ENTITY_ID' => $itemValues[
'ID'],
344 public function deleteItem($index)
350 $item = $this->getItemByIndex($index);
355 return parent::deleteItem($index);
static getConnection($name="")