%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/sale/lib/sender/ |
Current File : /home/bitrix/www/bitrix/modules/sale/lib/sender/triggerorderstatuschange.php |
<? namespace Bitrix\Sale\Sender; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Loader; if (!Loader::includeModule('sender')) { return; } Loc::loadMessages(__FILE__); class TriggerOrderStatusChange extends \Bitrix\Sender\TriggerConnector { public function getName() { return Loc::getMessage('sender_trigger_order_status_change_name'); } public function getCode() { return "order_status_change"; } public function getEventModuleId() { return 'sale'; } public function getEventType() { return "OnSaleStatusOrderChange"; } /** @return bool */ public static function canBeTarget() { return true; } public function filter() { $eventData = $this->getParam('EVENT'); $statusId = $this->getFieldValue('STATUS_ID', null); if(!($eventData['ENTITY'] instanceof \Bitrix\Sale\Order)) { return false; } if($statusId != $eventData['ENTITY']->getField('STATUS_ID')) { return false; } return $this->filterConnectorData(); } public function getConnector() { $connector = new \Bitrix\Sale\Sender\ConnectorOrder; $connector->setModuleId('sale'); return $connector; } /** @return array */ public function getProxyFieldsFromEventToConnector() { $eventData = $this->getParam('EVENT'); return array('ID' => $eventData['ENTITY']->getId(), 'LID' => $this->getSiteId()); } /** * @return array */ public function getPersonalizeFields() { $result = array( 'ORDER_ID' => '' ); $eventData = $this->getParam('EVENT'); if($eventData['ENTITY'] instanceof \Bitrix\Sale\Order) { $result['ORDER_ID'] = $eventData['ENTITY']->getId(); } return $result; } /** * @return array */ public static function getPersonalizeList() { return array( array( 'CODE' => 'ORDER_ID', 'NAME' => Loc::getMessage('sender_trigger_order_status_change_name_order_id_name'), 'DESC' => Loc::getMessage('sender_trigger_order_status_change_name_order_id_desc') ), ); } public function getForm() { $statusInput = ''; $statusDb = \Bitrix\Sale\Internals\StatusLangTable::getList(array( 'select' => array('STATUS_ID', 'NAME'), 'filter' => array('=LID' => LANGUAGE_ID, '=STATUS_ID' => \Bitrix\Sale\OrderStatus::getAllStatuses()), 'order' => array('STATUS.SORT') )); while($status = $statusDb->fetch()) { $selected = $status['STATUS_ID'] == $this->getFieldValue('STATUS_ID') ? ' selected' : ''; $statusInput .= '<option value="' . $status['STATUS_ID'] . '"' . $selected . '>' . htmlspecialcharsbx($status['NAME']) . '</option>'; } $statusInput = '<select name="' . $this->getFieldName('STATUS_ID') . '">' . $statusInput . '</select>'; return ' <table> <tr> <td>'.Loc::getMessage('sender_trigger_order_status_change_field').': </td> <td>'.$statusInput.'</td> </tr> </table> '; } }