Your IP : 3.135.221.113


Current Path : /home/bitrix/ext_www/home-comfort.in.ua/bitrix/modules/sale/lib/
Upload File :
Current File : /home/bitrix/ext_www/home-comfort.in.ua/bitrix/modules/sale/lib/senderconnector.php

<?php
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage sale
 * @copyright 2001-2012 Bitrix
 */

namespace Bitrix\Sale;

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Loader;

if (!Loader::includeModule('sender'))
{
	return;
}

Loc::loadMessages(__FILE__);

class SenderEventHandler
{
	/**
	 * Event handler.
	 *
	 * @param array $data Event data.
	 * @return array
	 */
	public static function onConnectorListBuyer($data)
	{
		$data['CONNECTOR'] = 'Bitrix\Sale\SenderConnectorBuyer';

		return $data;
	}
}


class SenderConnectorBuyer extends \Bitrix\Sender\Connector
{
	/**
	 * Get name.
	 *
	 * @return string
	 */
	public function getName()
	{
		return Loc::getMessage('sender_connector_buyer_name');
	}

	/**
	 * Get code.
	 *
	 * @return string
	 */
	public function getCode()
	{
		return "buyer";
	}

	/**
	 * Get data.
	 *
	 * @return \Bitrix\Main\DB\Result
	 */
	public function getData()
	{
		$lid = $this->getFieldValue('LID', null);
		$orderCountFrom = $this->getFieldValue('ORDER_COUNT_FROM', null);
		$orderCountTo = $this->getFieldValue('ORDER_COUNT_TO', null);
		$orderSumFrom = $this->getFieldValue('ORDER_SUM_FROM', null);
		$orderSumTo = $this->getFieldValue('ORDER_SUM_TO', null);
		$orderLastDateFrom = $this->getFieldValue('LAST_ORDER_DATE_FROM', null);
		$orderLastDateTo = $this->getFieldValue('LAST_ORDER_DATE_TO', null);

		$filter = array();
		if($lid)
			$filter['LID'] = $lid;
		if($orderCountFrom)
			$filter['>=COUNT_FULL_PAID_ORDER'] = $orderCountFrom;
		if($orderCountTo)
			$filter['<COUNT_FULL_PAID_ORDER'] = $orderCountTo;
		if($orderSumFrom)
			$filter['>=SUM_PAID'] = $orderSumFrom;
		if($orderSumTo)
			$filter['<SUM_PAID'] = $orderSumTo;
		if($orderLastDateFrom)
			$filter['>=LAST_ORDER_DATE'] = $orderLastDateFrom;
		if($orderLastDateTo)
			$filter['<LAST_ORDER_DATE'] = $orderLastDateTo;

		return BuyerStatistic::getList(array(
			'select' => array("EMAIL" => 'USER.EMAIL', "NAME" => 'USER.NAME', "USER_ID", "ID"),
			'filter' => $filter,
			'order' => array('ID' => 'ASC'),
		));
	}

	/**
	 * Get form html.
	 *
	 * @return string
	 */
	public function getForm()
	{
		$siteInput = '<select name="'.$this->getFieldName('LID').'">';
		$siteDb = \CSite::GetList($by="sort", $order="asc", array("ACTIVE" => "Y"));
		while ($site = $siteDb->Fetch())
		{
			$inputSelected = ($site['LID'] == $this->getFieldValue('LID') ? 'selected' : '');
			$siteInput .= '<option value="'.$site['LID'].'" '.$inputSelected.'>';
			$siteInput .= htmlspecialcharsbx($site['NAME']);
			$siteInput .= '</option>';
		}
		$siteInput .= '</select>';


		$orderCountInput = Loc::getMessage('sender_connector_buyer_from');
		$orderCountInput .= ' <input size=3 type="text" name="'.$this->getFieldName('ORDER_COUNT_FROM').'" value="'.htmlspecialcharsbx($this->getFieldValue('ORDER_COUNT_FROM')).'"> ';
		$orderCountInput .= Loc::getMessage('sender_connector_buyer_to');
		$orderCountInput .= ' <input size=3 type="text" name="'.$this->getFieldName('ORDER_COUNT_TO').'" value="'.htmlspecialcharsbx($this->getFieldValue('ORDER_COUNT_TO')).'">';

		$orderSumInput = Loc::getMessage('sender_connector_buyer_from');
		$orderSumInput .= ' <input size=3 type="text" name="'.$this->getFieldName('ORDER_SUM_FROM').'" value="'.htmlspecialcharsbx($this->getFieldValue('ORDER_SUM_FROM')).'"> ';
		$orderSumInput .= Loc::getMessage('sender_connector_buyer_to');
		$orderSumInput .= ' <input size=3 type="text" name="'.$this->getFieldName('ORDER_SUM_TO').'" value="'.htmlspecialcharsbx($this->getFieldValue('ORDER_SUM_TO')).'">';

		$lastOrderDateInput = CalendarPeriod(
			$this->getFieldName('LAST_ORDER_DATE_FROM'),
			$this->getFieldValue('LAST_ORDER_DATE_FROM'),
			$this->getFieldName('LAST_ORDER_DATE_TO'),
			$this->getFieldValue('LAST_ORDER_DATE_TO'),
			$this->getFieldFormName()
		);

		return '
			<table>
				<tr>
					<td>'.Loc::getMessage('sender_connector_buyer_site').'</td>
					<td>'.$siteInput.'</td>
				</tr>
				<tr>
					<td>'.Loc::getMessage('sender_connector_buyer_ordercnt').'</td>
					<td>'.$orderCountInput.'</td>
				</tr>
				<tr>
					<td>'.Loc::getMessage('sender_connector_buyer_ordersum').'</td>
					<td>'.$orderSumInput.'</td>
				</tr>
				<tr>
					<td>'.Loc::getMessage('sender_connector_buyer_lastorderdate').'</td>
					<td>'.$lastOrderDateInput.'</td>
				</tr>
			</table>
		';
	}
}