2022-03-02 15:40:53 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @category Integration
|
2024-04-29 11:44:31 +03:00
|
|
|
* @package Intaro\RetailCrm\Repository
|
2022-03-02 15:40:53 +03:00
|
|
|
* @author RetailCRM <integration@retailcrm.ru>
|
|
|
|
* @license MIT
|
|
|
|
* @link http://retailcrm.ru
|
|
|
|
* @see http://retailcrm.ru/docs
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Intaro\RetailCrm\Repository;
|
|
|
|
|
|
|
|
use Bitrix\Currency\CurrencyLangTable;
|
|
|
|
use Bitrix\Main\ArgumentException;
|
|
|
|
use Bitrix\Main\ObjectPropertyException;
|
|
|
|
use Bitrix\Main\SystemException;
|
|
|
|
use Intaro\RetailCrm\Component\ConfigProvider;
|
|
|
|
use Intaro\RetailCrm\Component\Constants;
|
|
|
|
use Logger;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class CurrencyRepository
|
|
|
|
*/
|
|
|
|
class CurrencyRepository extends AbstractRepository
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @return string|null
|
|
|
|
*/
|
|
|
|
public function getCurrencyFormatString(): ?string
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
$currency = CurrencyLangTable::query()
|
|
|
|
->setSelect(['FORMAT_STRING'])
|
|
|
|
->where([
|
|
|
|
['CURRENCY', '=', ConfigProvider::getCurrencyOrDefault()],
|
|
|
|
['LID', '=', 'LANGUAGE_ID'],
|
|
|
|
])
|
|
|
|
->fetch();
|
|
|
|
|
|
|
|
if ($currency === false || !isset($currency['FORMAT_STRING'])) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $currency['FORMAT_STRING'];
|
|
|
|
} catch (ObjectPropertyException | ArgumentException | SystemException $exception) {
|
|
|
|
Logger::getInstance()->write($exception->getMessage(), Constants::REPOSITORY_ERRORS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|