CCrmExternalSaleImport::ParseOrderDataOrderItems

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmExternalSaleImport
  4. ParseOrderDataOrderItems
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_external_sale_import.php
  • Класс: \CCrmExternalSaleImport
  • Вызов: CCrmExternalSaleImport::ParseOrderDataOrderItems
private function ParseOrderDataOrderItems($document, $arSettings, &$arOrder)
{
	if(!(is_array($document) && is_array($document["Item"])))
	{
		return;
	}

	$arOrder["ITEMS"] = array();
	foreach ($document["Item"] as $arItem)
	{
		$arItem = $arItem["#"];
		$arResultTmp = array();

		foreach ($arItem as $key => $value)
		{
			$value = $value[0]["#"];
			switch ($key)
			{
				case 'Id':
					$arResultTmp["ID"] = $value;
					break;
				case 'ItemName':
					$arResultTmp["NAME"] = $value;
					break;
				case 'Amount':
				case 'ItemPrice':
					if (!isset($arResultTmp["PRICE"]))
					{
						$priceTotal = (float)str_replace($arSettings["SumFormat"]["CRD"], ".", $arItem["Amount"][0]["#"]);
						$priceUnit = (float)str_replace($arSettings["SumFormat"]["CRD"], ".", $arItem["ItemPrice"][0]["#"]);
						$quantity = (float)str_replace($arSettings["QuantityFormat"]["CRD"], ".", $arItem["Quantity"][0]["#"]);

						$price = $priceTotal;
						if ($quantity > 0)
						{
							$price /= $quantity;
						}

						$discountPrice = 0;
						if ($priceUnit != $price)
						{
							$discountPrice = $priceUnit - $price;
						}

						$arResultTmp["PRICE"] = $price;
						$arResultTmp["DISCOUNT_PRICE"] = $discountPrice;
					}
					break;
				case 'Quantity':
					$arResultTmp["QUANTITY"] = str_replace($arSettings["QuantityFormat"]["CRD"], ".", $value);
					break;
				case 'PropertiesValues':
					if (is_array($value["ItemProperty"]))
					{
						foreach ($value["ItemProperty"] as $v)
							$arResultTmp["PROPERTIES"][$v["#"]["ItemName"][0]["#"]] = $v["#"]["Value"][0]["#"];
					}
					break;
				case 'Taxes':
					$taxValueTmp = $value["Tax"][0]["#"]["TaxValue"][0]["#"];
					$arResultTmp["VAT_RATE"] = $taxValueTmp / 100;
					$arResultTmp["VAT_NAME"] = $value["Tax"][0]["#"]["Name"][0]["#"];
					break;
				default:
					$arResultTmp[$key] = $value;
					break;
			}
		}

		$arOrder["ITEMS"][] = $arResultTmp;
	}
}

Добавить комментарий