%PDF- %PDF-
| Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/helpers/order/builder/ |
| Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/helpers/order/builder/errorscontainer.php |
<?php
namespace Bitrix\Sale\Helpers\Order\Builder;
use Bitrix\Main\Error;
use Bitrix\Sale\Result;
final class ErrorsContainer extends Result
{
protected $acceptableErrorCodes = [];
/**
* Adds the error.
* @param Error $error
*/
public function addError(Error $error)
{
if(!$this->isErrorAcceptable($error))
{
parent::addError($error);
}
}
/**
* Adds array of Error objects
*
* @param Error[] $errors
* @return $this
*/
public function addErrors(array $errors)
{
if(!empty($this->acceptableErrorCodes))
{
$errorsToAdd = array();
foreach($errors as $error)
{
if(!$this->isErrorAcceptable($error))
{
$errorsToAdd[] = $error;
}
}
$this->errors->add($errorsToAdd);
}
else
{
$this->errors->add($errors);
}
return $this;
}
public function setAcceptableErrorCodes(array $errorCodes)
{
$this->acceptableErrorCodes = $errorCodes;
}
private function isErrorAcceptable(Error $error)
{
if(empty($this->acceptableErrorCodes))
{
return false;
}
$code = $error->getCode();
if(empty($code))
{
return false;
}
return in_array($code, $this->acceptableErrorCodes);
}
}