1
0
mirror of synced 2025-02-12 13:09:22 +03:00
bitrix-module/intaro.retailcrm/lib/repository/orderpropsrepository.php
Neur0toxine 5f69051859
Программа лояльности
* New module structure (refactoring)
* Simple serializer and deserializer with models, new architecture
* Move logic to strategies
* Partial api client facade implementation (full implementation is not necessary for now)
* Loyalty feature installer
* Sms verification order (#167)
* Make updater self-sufficient
* Fix for order submit & fix for incorrect component rendering in the constructor
* Fix for loyalty personal area error handling
* Fix for cart component identity
* Fix for softlock when customer cannot be registered in loyalty

Co-authored-by: Сергей Чазов <45812598+Chazovs@users.noreply.github.com>
Co-authored-by: Sergey Chazov <oitv18@gmail.com>
2021-11-16 10:48:26 +03:00

70 lines
1.8 KiB
PHP

<?php
/**
* PHP version 7.1
*
* @category Integration
* @package Intaro\RetailCrm\Repository
* @author RetailCRM <integration@retailcrm.ru>
* @license MIT
* @link http://retailcrm.ru
* @see http://retailcrm.ru/docs
*/
namespace Intaro\RetailCrm\Repository;
use Bitrix\Sale\Internals\OrderPropsTable;
use Bitrix\Main\ORM\Objectify\EntityObject;
use Intaro\RetailCrm\Model\Bitrix\OrderProps;
/**
* Class OrderPropsRepository
* @package Intaro\RetailCrm\Repository
*/
class OrderPropsRepository extends AbstractRepository
{
/**
* @param array $select
* @param array $where
* @return \Intaro\RetailCrm\Model\Bitrix\OrderProps|null
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public static function getFirstByWhere(array $select, array $where): ?OrderProps
{
return static::getWrapped(OrderPropsTable::query()
->setSelect($select)
->where($where)
->fetchObject());
}
/**
* @param int $id
*
* @return OrderProps|null
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public static function getById(int $id): ?OrderProps
{
return static::getWrapped(OrderPropsTable::getByPrimary($id)->fetchObject());
}
/**
* @param \Bitrix\Main\ORM\Objectify\EntityObject|null $entityObject
*
* @return \Intaro\RetailCrm\Model\Bitrix\Fuser|null
*/
private static function getWrapped(?EntityObject $entityObject): ?OrderProps
{
if (null === $entityObject) {
return null;
}
return new OrderProps($entityObject);
}
}