| Current Path : /var/www/homesaver/www/bitrix/modules/epages.pickpoint/lib/ |
| Current File : /var/www/homesaver/www/bitrix/modules/epages.pickpoint/lib/_OrderOptions.php.back |
<?php
/**
* User: dimasik142
* Email: ivanov.dmytro.ua@gmail.com
* Date: 11.09.2018
* Time: 16:14
*/
namespace PickPoint;
use \Bitrix\Main\Config\Option,
\Bitrix\Sale\Order,
\Bitrix\Main\UserTable;
class OrderOptions
{
const MODULE_ID = 'epages.pickpoint';
/**
* @param $orderId
* @param $personalType
* @param $arOptionDefaults
* @return array
* @throws \Bitrix\Main\SystemException
*/
public static function getOrderOptions($orderId, $personalType, $arOptionDefaults)
{
$arTableOptions = (unserialize(Option::get(self::MODULE_ID, 'OPTIONS')));
if (!isset($arTableOptions[$personalType])) {
$arData = $arOptionDefaults[$personalType];
} else {
$arData = $arTableOptions[$personalType];
}
$result = [];
foreach ($arData as $key => $option) {
switch ($option[0]['TYPE']) {
case 'ANOTHER':
$result[$key] = $option[0]['VALUE'];
break;
case 'USER':
$result[$key] = self::getUserPropValue($orderId, $option[0]['VALUE']);
break;
case 'ORDER':
$result[$key] = self::getOrderParam($orderId, $option[0]['VALUE']);
break;
case 'PROPERTY':
$result[$key] = self::getOrderPropValue($orderId, $option[0]['VALUE']);
break;
}
}
return $result;
}
/**
* @return array
* @throws \Bitrix\Main\SystemException
*/
public static function getStoreOptionValues()
{
$storeData['IKN'] = Option::get(self::MODULE_ID, 'pp_ikn_number', '');
$storeData['FROM_CITY'] = Option::get(self::MODULE_ID, 'pp_from_city', '������');
$storeData['ADDRESS'] = Option::get(self::MODULE_ID, 'pp_store_address', '');
$storeData['PHONE'] = Option::get(self::MODULE_ID, 'pp_store_phone', '+79160000000');
$storeData['ENCLOSURE'] = Option::get(self::MODULE_ID, 'pp_enclosure', '');
$storeData['WIDTH'] = Option::get(self::MODULE_ID, 'pp_dimension_width', '50');
$storeData['HEIGHT'] = Option::get(self::MODULE_ID, 'pp_dimension_height', '50');
$storeData['DEPTH'] = Option::get(self::MODULE_ID, 'pp_dimension_depth', '50');
$storeData['DELIVERY_VAT'] = Option::get(self::MODULE_ID, 'pp_delivery_vat', '0');
$storeData['DELIVERY_FEE'] = Option::get(self::MODULE_ID, 'pp_delivery_fee', '0');
$storeData['returnAddress'] = [
'CityName' => Option::get(self::MODULE_ID, 'pp_store_city', ''),
'RegionName' => Option::get(self::MODULE_ID, 'pp_store_region', ''),
'Address' => $storeData['ADDRESS'],
'FIO' => Option::get(self::MODULE_ID, 'pp_store_fio', ''),
'PostCode' => Option::get(self::MODULE_ID, 'pp_store_post', ''),
'Organisation' => Option::get(self::MODULE_ID, 'pp_store_organisation', ''),
'PhoneNumber' => $storeData['PHONE'],
'Comment' => Option::get(self::MODULE_ID, 'pp_store_comment', 'comment')
];
return $storeData;
}
/**
* @param int $orderId
* @param int $propId
* @return \Bitrix\Sale\PropertyValue
* @throws \Bitrix\Main\SystemException
*/
public static function getOrderPropValue($orderId, $propId)
{
$result = null;
$order = Order::load($orderId);
if (!empty($orderId)) {
$propertyCollection = $order->getPropertyCollection();
}
if (!empty($propertyCollection)) {
$getItemByOrderPropertyId_value = $propertyCollection->getItemByOrderPropertyId($propId);
}
if (!empty($getItemByOrderPropertyId_value)) {
$result = $getItemByOrderPropertyId_value->getValue();
}
return $result;
}
/**
* @param int $orderId
* @param string $propName
* @return null|string
* @throws \Bitrix\Main\SystemException
*/
public static function getOrderParam($orderId, $propName)
{
if (!empty($orderId)) {
$order = Order::load($orderId);
return $order->getField($propName);
}
return false;
}
/**
* @param int $orderId
* @param string $propName
* @return null|string
* @throws \Bitrix\Main\SystemException
*/
public static function getUserPropValue($orderId, $propName)
{
$order = Order::load($orderId);
if (!empty($orderId)) {
$userId = $order->getField('USER_ID');
$propData = UserTable::getList(
array(
'filter' => array(
'ID' => $userId
),
'select' => array(
$propName
)
)
)->fetch();
return $propData[$propName];
}
return false;
}
/**
* @param int $orderId
* @return array
* @throws \Bitrix\Main\SystemException
*/
public static function getBasketItemsData($orderId)
{
$products = [];
if (!empty($orderId)) {
$order = Order::load($orderId);
$basket = $order->getBasket();
$basketItems = $basket->getBasketItems();
foreach ($basketItems as $basketItem) {
$products[] = [
'GoodsCode' => $basketItem->getField('PRODUCT_ID'),
'Name' => $basketItem->getField('NAME'),
'Price' => $basketItem->getField('PRICE'),
'Quantity' => $basketItem->getField('QUANTITY'),
'Vat' => intval($basketItem->getField('VAT_RATE') * 100),
'Description' => $basketItem->getField('QUANTITY'),
];
}
}
return $products;
}
}