getFieldValue('DAYS_DONT_BUY'); if(!is_numeric($daysDontBuy)) $daysDontBuy = 90; $dateFrom = new \Bitrix\Main\Type\DateTime; $dateTo = new \Bitrix\Main\Type\DateTime; $dateFrom->setTime(0, 0, 0)->add('-' . $daysDontBuy . ' days'); $dateTo->setTime(0, 0, 0)->add('1 days')->add('-' . $daysDontBuy . ' days'); if($this->isRunForOldData()) { $filter = array( ' $dateTo->format(\Bitrix\Main\UserFieldTable::MULTIPLE_DATETIME_FORMAT), ); } else { $filter = array( '>MAX_DATE_INSERT' => $dateFrom->format(\Bitrix\Main\UserFieldTable::MULTIPLE_DATETIME_FORMAT), ' $dateTo->format(\Bitrix\Main\UserFieldTable::MULTIPLE_DATETIME_FORMAT), ); } $filter = $filter + array( '=LID' => $this->getSiteId() ); $userListDb = \Bitrix\Sale\Internals\OrderTable::getList(array( 'select' => array('BUYER_USER_ID' => 'USER.ID', 'EMAIL' => 'USER.EMAIL', 'BUYER_USER_NAME' => 'USER.NAME'), 'filter' => $filter, 'runtime' => array( new \Bitrix\Main\Entity\ExpressionField('MAX_DATE_INSERT', 'MAX(%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; } public function getForm() { $daysDontBuyInput = ' '; return '
'.Loc::getMessage('sender_trigger_dont_buy_days').' '.$daysDontBuyInput.'
'; } public function getRecipient() { return $this->recipient; } public function getFetchDataModifier($fields) { if(isset($fields['BUYER_USER_NAME'])) { $fields['NAME'] = $fields['BUYER_USER_NAME']; unset($fields['BUYER_USER_NAME']); } if(isset($fields['BUYER_USER_ID'])) { $fields['USER_ID'] = $fields['BUYER_USER_ID']; unset($fields['BUYER_USER_ID']); } return $fields; } }