- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxcheckbox.php
- Класс: BitrixSaleCashboxCashboxCheckbox
- Вызов: CashboxCheckbox::printImmediately
public function printImmediately(Check $check)
{
$url = $this->getRequestUrl(static::OPERATION_CREATE_CHECK);
$token = $this->getAccessToken();
$requestHeaders = [
'ACCESS_TOKEN' => $token,
];
$requestBody = $this->buildCheckQuery($check);
$printResult = $this->sendRequestWithAuthorization(self::HTTP_METHOD_POST, $url, $requestHeaders, $requestBody, self::HTTP_NO_REDIRECT);
if (!$printResult->isSuccess())
{
return $printResult;
}
$response = $printResult->getData();
if ($response['http_code'] === self::HTTP_RESPONSE_CODE_400)
{
$openShiftResult = $this->openShift();
if (!$openShiftResult->isSuccess())
{
return $openShiftResult;
}
$this->addCloseShiftAgent();
$printResult = $this->sendRequestWithAuthorization(self::HTTP_METHOD_POST, $url, $requestHeaders, $requestBody, self::HTTP_NO_REDIRECT);
if (!$printResult->isSuccess())
{
return $printResult;
}
$response = $printResult->getData();
}
$responseCode = $response['http_code'];
switch ($responseCode)
{
case self::HTTP_RESPONSE_CODE_201:
if ($response['id'])
{
$printResult->setData(['UUID' => $response['id']]);
}
else
{
$printResult->addError(new MainError(Loc::getMessage('SALE_CASHBOX_CHECKBOX_CHECK_PRINT_ERROR')));
}
break;
case self::HTTP_RESPONSE_CODE_422:
if ($response['detail'])
{
foreach ($response['detail'] as $errorDetail)
{
$printResult->addError(new MainError($errorDetail['msg']));
}
}
else
{
$printResult->addError(new MainError(Loc::getMessage('SALE_CASHBOX_CHECKBOX_CHECK_PRINT_ERROR')));
}
break;
default:
if ($response['message'])
{
$printResult->addError(new MainError($response['message']));
}
else
{
$printResult->addError(new MainError(Loc::getMessage('SALE_CASHBOX_CHECKBOX_CHECK_PRINT_ERROR')));
}
}
return $printResult;
}