• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/check.php
  • Класс: BitrixSaleCashboxCheck
  • Вызов: Check::getDataForCheck
public function getDataForCheck()
{
	$result = [
		'type' => static::getType(),
		'calculated_sign' => static::getCalculatedSign(),
		'unique_id' => $this->getField('ID'),
		'items' => [],
		'date_create' => new MainTypeDateTime()
	];

	$data = $this->extractData();

	if ($data)
	{
		if (isset($data['ORDER']))
		{
			$result['order'] = $data['ORDER'];
		}

		foreach ($data['PAYMENTS'] as $payment)
		{
			$item = [
				'entity' => $payment['ENTITY'],
				'type' => $payment['TYPE'],
				'is_cash' => $payment['IS_CASH'],
				'sum' => $payment['SUM'],
				'currency' => $payment['CURRENCY'],
			];

			if (isset($payment['ADDITIONAL_PARAMS']))
			{
				$item['additional_params'] = $payment['ADDITIONAL_PARAMS'];
			}

			$result['payments'][] = $item;
		}

		if (isset($data['PRODUCTS']))
		{
			foreach ($data['PRODUCTS'] as $product)
			{
				$item = [
					'entity' => $product['ENTITY'] ?? null,
					'name' => $product['NAME'],
					'base_price' => $product['BASE_PRICE'],
					'price' => $product['PRICE'],
					'sum' => $product['SUM'],
					'currency' => $product['CURRENCY'],
					'quantity' => $product['QUANTITY'],
					'measure_code' => $product['MEASURE_CODE'] ?? '',
					'vat' => $product['VAT'] ?? 0,
					'vat_sum' => $product['VAT_SUM'] ?? 0,
					'payment_object' => $product['PAYMENT_OBJECT'],
					'properties' => $product['PROPERTIES'] ?? [],
				];

				if (isset($product['NOMENCLATURE_CODE']))
				{
					$item['nomenclature_code'] = $product['NOMENCLATURE_CODE'];
				}

				if (isset($product['MARKING_CODE']))
				{
					$item['marking_code'] = $product['MARKING_CODE'];
				}

				if (isset($product['BARCODE']))
				{
					$item['barcode'] = $product['BARCODE'];
				}

				if (!empty($product['DISCOUNT']))
				{
					$item['discount'] = [
						'discount' => $product['DISCOUNT']['PRICE'],
						'discount_type' => $product['DISCOUNT']['TYPE'],
					];
				}

				if (isset($product['SUPPLIER_INFO']))
				{
					$item['supplier_info'] = [
						'phones' => $product['SUPPLIER_INFO']['PHONES'] ?? [],
						'name' => $product['SUPPLIER_INFO']['NAME'] ?? '',
						'inn' => $product['SUPPLIER_INFO']['INN'] ?? '',
					];
				}

				if (isset($product['ADDITIONAL_PARAMS']))
				{
					$item['additional_params'] = $product['ADDITIONAL_PARAMS'];
				}

				$result['items'][] = $item;
			}
		}

		if (isset($data['DELIVERY']))
		{
			foreach ($data['DELIVERY'] as $delivery)
			{
				$item = [
					'entity' => $delivery['ENTITY'],
					'name' => $delivery['NAME'],
					'base_price' => $delivery['BASE_PRICE'],
					'price' => $delivery['PRICE'],
					'sum' => $delivery['SUM'],
					'currency' => $delivery['CURRENCY'],
					'quantity' => $delivery['QUANTITY'],
					'vat' => $delivery['VAT'],
					'vat_sum' => $delivery['VAT_SUM'],
					'payment_object' => $delivery['PAYMENT_OBJECT'],
				];

				if ($delivery['DISCOUNT'])
				{
					$item['discount'] = [
						'discount' => $delivery['DISCOUNT']['PRICE'],
						'discount_type' => $delivery['DISCOUNT']['TYPE'],
					];
				}

				if (isset($delivery['ADDITIONAL_PARAMS']))
				{
					$item['additional_params'] = $delivery['ADDITIONAL_PARAMS'];
				}

				$result['items'][] = $item;
			}
		}

		if (isset($data['BUYER']))
		{
			if (isset($data['BUYER']['EMAIL']))
				$result['client_email'] = $data['BUYER']['EMAIL'];

			if (isset($data['BUYER']['PHONE']))
				$result['client_phone'] = $data['BUYER']['PHONE'];
		}

		if (isset($data['ADDITIONAL_PARAMS']))
		{
			$result['additional_params'] = $data['ADDITIONAL_PARAMS'];
		}

		$result['total_sum'] = $data['TOTAL_SUM'];
	}

	return $result;
}