• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/onec/documentimport.php
  • Класс: BitrixSaleExchangeOneCDocumentImport
  • Вызов: DocumentImport::prepareFieldsData
public function prepareFieldsData(array $document)
    {
        $message = self::getMessage();
        $fields = array();

        foreach(static::getFieldsInfo() as $k=>$v)
        {
            switch($k)
            {
                case 'ID':
                    $value = $document["#"][$message["CC_BSC1_NUMBER"]][0]["#"];
                    self::internalizeFields($value, $v);
                    $fields[$k] = $value;
                    break;
                case 'ID_1C':
                    $value = $document["#"][$message["CC_BSC1_ID"]][0]["#"];
                    self::internalizeFields($value, $v);
                    $fields[$k] = $value;
                    break;
                case 'ORDER_ID':
                    $value = $document["#"][$message["CC_BSC1_NUMBER_BASE"]][0]["#"];
                    self::internalizeFields($value, $v);
                    $fields[$k] = $value;
                    break;
                case 'VERSION_1C':
                case 'COMMENT':
                case 'CANCELED':
                case '1C_DATE':
				$value = $document["#"][$message["CC_BSC1_".$k]][0]["#"];
				self::internalizeFields($value, $v);
				$fields[$k] = $value;
				break;
                case '1C_TIME':
                	$date1C = $document["#"][$message["CC_BSC1_1C_DATE"]][0]["#"];
                	if($date1C >0)
				{
					$value = $date1C." ".$document["#"][$message["CC_BSC1_".$k]][0]["#"];
					self::internalizeFields($value, $v);
					$fields[$k] = $value;
				}
                    break;
                case 'OPERATION':
                    $typeId = self::resolveDocumentTypeId($document);
                    $fields[$k] = DocumentType::resolveName($typeId);
                    break;
                case 'AMOUNT':
                    $value = $document["#"][$message["CC_BSC1_SUMM"]][0]["#"];
                    self::internalizeFields($value, $v);
                    $fields[$k] = $value;
                    break;
			case 'CASH_BOX_CHECKS':
				$fields[$k] = self::resolveCashBoxCheksParams($document, $v);
				break;
                case 'REK_VALUES':
                    $fields[$k] = self::resolveTraitsParams($document, $v);
                    break;
                case 'ITEMS':
                    $fields['ITEMS_FIELDS'] = self::resolveItemsParams($document, $v);

                    if(!empty($fields['ITEMS_FIELDS']))
                        $fields[$k] = self::fillItemsFields($fields);
                    break;
                case 'TAXES':
                    $taxValue = 0;
                    $taxName = '';
                    if(!empty($fields['ITEMS_FIELDS']))
                    {
                        foreach($fields['ITEMS_FIELDS'] as $items)
                        {
                            foreach ($items as $item)
                            {
							$taxValueTmp = isset($item['TAX_VALUE']) ? $item['TAX_VALUE']:0;

							if (IntVal($taxValueTmp) > IntVal($taxValue))
							{
								$taxName = $item['NAME'];
								$taxValue = $taxValueTmp;
							}
                            }
                        }
                    }

                    if(IntVal($taxValue)>0)
                    {
                        $fields[$k] = self::resolveTaxParams($document, $v);
                        $fields[$k]['VALUE'] = $taxValue;
                        $fields[$k]['NAME'] = $taxName;
                    }
                    break;
                case 'AGENT':
                    /* includes document profile */
                    $documentProfile = new UserProfileDocument();
                    $mess = MainLocalizationLoc::loadLanguageFile($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/sale/general/export.php');

                    if(is_array($document["#"][$mess["SALE_EXPORT_CONTRAGENTS"]][0]["#"][$mess["SALE_EXPORT_CONTRAGENT"]][0]["#"]))
				{
					$fields[$k] = $documentProfile::prepareFieldsData($document["#"][$mess["SALE_EXPORT_CONTRAGENTS"]][0]["#"][$mess["SALE_EXPORT_CONTRAGENT"]][0]["#"]);
				}

                    break;
            }
        }
        return $fields;
    }