3namespace Bitrix\Sale\Cashbox;
6use Bitrix\Main\Localization;
40 $dateTime =
$data[
'date_create'];
45 $serviceEmail = static::getDefaultServiceEmail();
49 'timestamp' => $dateTime->format(
'd.m.Y H:i:s'),
50 'external_id' => static::buildUuid(static::UUID_TYPE_CHECK,
$data[
'unique_id']),
57 'email' => $serviceEmail,
62 'internet' => $this->
getField(
'USE_OFFLINE') ===
'N',
65 'total' => (float)
$data[
'total_sum']
72 if (is_string($phone))
74 if ($phone[0] !==
'7')
87 if ($clientInfo ===
'PHONE')
89 $result[
'receipt'][
'client'] = [
'phone' => $phone];
91 elseif ($clientInfo ===
'EMAIL')
97 $result[
'receipt'][
'client'] = [];
106 $result[
'receipt'][
'client'][
'phone'] = $phone;
110 if (isset(
$data[
'payments']))
112 $paymentTypeMap = $this->getPaymentTypeMap();
115 $result[
'receipt'][
'payments'][] = [
116 'type' => $paymentTypeMap[
$payment[
'type']],
122 foreach (
$data[
'items'] as $item)
149 if (isset($item[
'nomenclature_code']))
163 return mb_substr($item[
'name'], 0, static::MAX_NAME_LENGTH);
172 return (
float)$item[
'price'];
181 return (
float)$item[
'sum'];
190 return $item[
'quantity'];
201 return $checkTypeMap[$checkData[
'type']];
212 return $paymentObjectMap[$item[
'payment_object']];
228 return $this->mapVatValue($checkData[
'type'],
$vat);
237 $hexCode = bin2hex(
$code);
238 $hexCodeArray = str_split($hexCode, 2);
239 $hexCodeArray = array_map(
'ToUpper', $hexCodeArray);
241 return join(
' ', $hexCodeArray);
253 $operation =
'sell_correction';
256 $operation =
'sell_refund';
271 $dateTime =
$data[
'date_create'];
273 $documentDate =
$data[
'correction_info'][
'document_date'];
280 'timestamp' => $dateTime->format(
'd.m.Y H:i:s'),
281 'external_id' => static::buildUuid(static::UUID_TYPE_CHECK,
$data[
'unique_id']),
291 'correction_info' => [
292 'type' =>
$data[
'correction_info'][
'type'],
293 'base_date' => $documentDate->format(
'd.m.Y H:i:s'),
294 'base_number' =>
$data[
'correction_info'][
'document_number'],
295 'base_name' => mb_substr(
296 $data[
'correction_info'][
'description'],
306 if (isset(
$data[
'payments']))
308 $paymentTypeMap = $this->getPaymentTypeMap();
311 $result[
'correction'][
'payments'][] = [
312 'type' => $paymentTypeMap[
$payment[
'type']],
318 if (isset(
$data[
'vats']))
320 foreach (
$data[
'vats'] as $item)
328 $result[
'correction'][
'vats'][] = [
330 'sum' => (float)$item[
'sum']
350 private function mapVatValue($checkType,
$vat)
356 $map = $mapper->getMap();
363 $vatList = parent::getDefaultVatList();
365 return $vatList + [5 => self::CODE_VAT_5, 7 => self::CODE_VAT_7];
371 self::CODE_VAT_5 => self::CODE_CALC_VAT_5,
372 self::CODE_VAT_7 => self::CODE_CALC_VAT_7,
373 self::CODE_VAT_10 => self::CODE_CALC_VAT_10,
374 self::CODE_VAT_20 => self::CODE_CALC_VAT_20,
419 private function getPaymentTypeMap()
432 private static function getDefaultServiceEmail()
480 $serviceUrl = static::SERVICE_URL;
484 $serviceUrl = static::SERVICE_TEST_URL;
487 $groupCode = $this->
getField(
'NUMBER_KKM');
489 if ($operation === static::OPERATION_CHECK_REGISTRY)
491 return $serviceUrl.
'/'.$groupCode.
'/'.$queryData[
'CHECK_TYPE'].
'?token='.$token;
493 elseif ($operation === static::OPERATION_CHECK_CHECK)
495 return $serviceUrl.
'/'.$groupCode.
'/report/'.$queryData[
'EXTERNAL_UUID'].
'?token='.$token;
497 elseif ($operation === static::OPERATION_GET_TOKEN)
499 return $serviceUrl.
'/getToken';
511 $settings = parent::getSettings($modelId);
514 $settings[
'SERVICE'][
'ITEMS'][
'EMAIL'] = [
517 'VALUE' => static::getDefaultServiceEmail()
545 if (empty($checkData[
'receipt'][
'client'][
'email']) && empty($checkData[
'receipt'][
'client'][
'phone']))
550 foreach ($checkData[
'receipt'][
'items'] as $item)
552 if ($item[
'vat'] ===
null)
static get($moduleId, $name, $default="", $siteId=false)
static loadMessages($file)
static getMessage($code, $replace=null, $language=null)
const PAYMENT_TYPE_ADVANCE
const PAYMENT_TYPE_CREDIT
const CALCULATED_SIGN_CONSUMPTION
const PAYMENT_TYPE_CASHLESS
registerCheck($operation, array $check)
buildPositionQuantity(array $item)
buildPositionPrice(array $item)
static getSettings($modelId=0)
printCorrectionImmediately(CorrectionCheck $check)
static getDefaultVatList()
buildPositionPaymentObject(array $item)
buildPositionSum(array $item)
buildPositionVatType(array $checkData, array $item)
buildPosition(array $checkData, array $item)
const HANDLER_MODE_ACTIVE
buildPositionName(array $item)
buildPositionPaymentMethod(array $checkData)
buildPositionNomenclatureCode($code)
checkCorrection(CorrectionCheck $check)
validateCheckQuery(array $checkData)
getRequestUrl($operation, $token, array $queryData=array())
buildCheckQuery(Check $check)
getValueFromSettings($name, $code)
const PAYMENT_OBJECT_EXCISE
const PAYMENT_OBJECT_LOTTERY
const PAYMENT_OBJECT_SOCIAL_INSURANCE
const PAYMENT_OBJECT_COMPOSITE
const PAYMENT_OBJECT_LOTTERY_PRIZE
const PAYMENT_OBJECT_MEDICAL_INSURANCE_IP
const PAYMENT_OBJECT_COMMODITY_MARKING_EXCISE
const PAYMENT_OBJECT_NON_OPERATING_GAIN
const PAYMENT_OBJECT_COMMODITY_MARKING_NO_MARKING_EXCISE
const PAYMENT_OBJECT_RESORT_FEE
const PAYMENT_OBJECT_PENSION_INSURANCE_IP
const PAYMENT_OBJECT_PROPERTY_RIGHT
const PAYMENT_OBJECT_GAMBLING_PRIZE
const PAYMENT_OBJECT_COMMODITY_MARKING
const PAYMENT_OBJECT_COMMODITY
const PAYMENT_OBJECT_AGENT_COMMISSION
const PAYMENT_OBJECT_ANOTHER
const PAYMENT_OBJECT_DEPOSIT
const PAYMENT_OBJECT_MEDICAL_INSURANCE
const PAYMENT_OBJECT_SERVICE
const PAYMENT_OBJECT_INTELLECTUAL_ACTIVITY
const PAYMENT_OBJECT_PAYMENT
const PAYMENT_OBJECT_EXPENSE
const PAYMENT_OBJECT_GAMBLING_BET
const PAYMENT_OBJECT_CASINO_PAYMENT
const PAYMENT_OBJECT_PENSION_INSURANCE
const PAYMENT_OBJECT_COMMODITY_MARKING_NO_MARKING
const PAYMENT_OBJECT_SALES_TAX
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
buildCorrectionCheckQuery(CorrectionCheck $check)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
NormalizePhone($number, $minLength=10)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)