• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/sender/triggerbasketforgotten.php
  • Класс: BitrixSaleSenderTriggerBasketForgotten
  • Вызов: TriggerBasketForgotten::filter
public function filter()
{
	BitrixMainLoader::includeModule('sale');

	$daysBasketForgotten = $this->getFieldValue('DAYS_BASKET_FORGOTTEN');
		if(!is_numeric($daysBasketForgotten))
			$daysBasketForgotten = 90;

	$dateFrom = new BitrixMainTypeDateTime;
	$dateTo = new BitrixMainTypeDateTime;

	$dateFrom->setTime(0, 0, 0)->add('-' . $daysBasketForgotten . ' days');
	$dateTo->setTime(0, 0, 0)->add('1 days')->add('-' . $daysBasketForgotten . ' days');

	if($this->isRunForOldData())
	{
		$filter = array(
			' $dateTo->format(BitrixMainUserFieldTable::MULTIPLE_DATETIME_FORMAT),
		);
	}
	else
	{
		$filter = array(
			'>MIN_DATE_INSERT' => $dateFrom->format(BitrixMainUserFieldTable::MULTIPLE_DATETIME_FORMAT),
			' $dateTo->format(BitrixMainUserFieldTable::MULTIPLE_DATETIME_FORMAT),
		);
	}
	$filter = $filter + array(
		'!FUSER.USER_ID' => null,
		'=ORDER_ID' => null,
		'=LID' => $this->getSiteId(),
	);

	$userListDb = BitrixSaleInternalsBasketTable::getList(array(
		'select' => array('USER_ID' => 'FUSER.USER_ID', 'EMAIL' => 'FUSER.USER.EMAIL', 'FUSER_USER_NAME' => 'FUSER.USER.NAME'),
		'filter' => $filter,
		'runtime' => array(
			new BitrixMainEntityExpressionField('MIN_DATE_INSERT', 'MIN(%s)', 'DATE_INSERT'),
		),
		'order' => array('USER_ID' => 'ASC')
	));

	if($userListDb->getSelectedRowsCount() > 0)
	{
		$userListDb->addFetchDataModifier(array($this, 'getFetchDataModifier'));
		$this->recipient = $userListDb;
		return true;
	}
	else
		return false;
}