• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_invoice.php
  • Класс: \CAllCrmInvoice
  • Вызов: CAllCrmInvoice::CheckFields
public function CheckFields(&$arFields, $ID = false, $bStatusSuccess = true, $bStatusFailed = true,
	$options = array())
{
	/** @global CUserTypeManager $USER_FIELD_MANAGER */
	/** @global CMain $APPLICATION */
	global $APPLICATION, $USER_FIELD_MANAGER;

	$this->LAST_ERROR = '';

	$bTaxMode = CCrmTax::isTaxMode();

	if (!isset($arFields['PRODUCT_ROWS']) || !is_array($arFields['PRODUCT_ROWS']) || count($arFields['PRODUCT_ROWS']) === 0)
	{
		$this->LAST_ERROR .= GetMessage('CRM_ERROR_EMPTY_INVOICE_SPEC')."
\n"; } else { $invalidQuantityExists = false; foreach ($arFields['PRODUCT_ROWS'] as $productRow) { if (!isset($productRow['QUANTITY']) || round(doubleval($productRow['QUANTITY']), 4) <= 0.0) { $invalidQuantityExists = true; break; } } unset($productRow); if ($invalidQuantityExists) $this->LAST_ERROR .= GetMessage('CRM_ERROR_INVOICE_SPEC_INVALID_QUANTITY')."
\n"; unset($invalidQuantityExists); } if ($ID !== false && isset($arFields['ACCOUNT_NUMBER'])) { if ($arFields['ACCOUNT_NUMBER'] == '') $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_IS_MISSING', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_ACCOUNT_NUMBER')))."
\n"; } if (($ID == false || isset($arFields['ORDER_TOPIC'])) && $arFields['ORDER_TOPIC'] == '') $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_IS_MISSING', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_ORDER_TOPIC')))."
\n"; if (!empty($arFields['ORDER_TOPIC']) && mb_strlen($arFields['ORDER_TOPIC']) > 255) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_ORDER_TOPIC')))."
\n"; if (!empty($arFields['COMMENTS']) && mb_strlen($arFields['COMMENTS']) > 2000) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_COMMENTS'))) .' ('.GetMessage('CRM_FIELD_COMMENTS_INCORRECT_INFO').").
\n"; if (!empty($arFields['USER_DESCRIPTION']) && mb_strlen($arFields['USER_DESCRIPTION']) > 2000) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_USER_DESCRIPTION'))) .' ('.GetMessage('CRM_FIELD_USER_DESCRIPTION_INCORRECT_INFO').").
\n"; $crmStatus = new CCrmStatus('INVOICE_STATUS'); if (empty($arFields['STATUS_ID']) || !$crmStatus->CheckStatusId($arFields['STATUS_ID'])) { $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_STATUS_ID')))."
\n"; } unset($crmStatus); if ($bStatusSuccess) { if (!empty($arFields['PAY_VOUCHER_NUM']) && mb_strlen($arFields['PAY_VOUCHER_NUM']) > 20) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_PAY_VOUCHER_NUM')))."
\n"; if (!empty($arFields['PAY_VOUCHER_DATE']) && !CheckDateTime($arFields['PAY_VOUCHER_DATE'])) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_PAY_VOUCHER_DATE')))."
\n"; if (!empty($arFields['REASON_MARKED']) && mb_strlen($arFields['REASON_MARKED']) > 255) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_REASON_MARKED_SUCCESS')))."
\n"; } elseif ($bStatusFailed) { if (!empty($arFields['DATE_MARKED']) && !CheckDateTime($arFields['DATE_MARKED'])) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_DATE_MARKED')))."
\n"; if (!empty($arFields['REASON_MARKED']) && mb_strlen($arFields['REASON_MARKED']) > 255) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_REASON_MARKED')))."
\n"; } if (!isset($arFields['PERSON_TYPE_ID']) || intval($arFields['PERSON_TYPE_ID']) <= 0 || (intval($arFields['UF_COMPANY_ID']) <= 0 && intval($arFields['UF_CONTACT_ID']) <= 0)) $this->LAST_ERROR .= GetMessage('CRM_ERROR_PAYER_IS_MISSING')."
\n"; if ($bTaxMode) { if (!isset($arFields['PR_LOCATION']) || intval($arFields['PR_LOCATION']) <= 0) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_IS_MISSING', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_PR_LOCATION')))."
\n"; } if (!isset($arFields['PAY_SYSTEM_ID']) || intval($arFields['PAY_SYSTEM_ID']) <= 0) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_IS_MISSING', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_PAY_SYSTEM_ID')))."
\n"; if (!empty($arFields['DATE_INSERT']) && !CheckDateTime($arFields['DATE_INSERT'])) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_DATE_INSERT')))."
\n"; if (!empty($arFields['DATE_BILL']) && !CheckDateTime($arFields['DATE_BILL'])) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_DATE_BILL')))."
\n"; if (!empty($arFields['DATE_PAY_BEFORE']) && !CheckDateTime($arFields['DATE_PAY_BEFORE'])) $this->LAST_ERROR .= GetMessage('CRM_ERROR_FIELD_INCORRECT', array('%FIELD_NAME%' => GetMessage('CRM_FIELD_DATE_PAY_BEFORE')))."
\n"; if(!is_array($options)) { $options = array(); } $enableUserFieldCheck = !(isset($options['DISABLE_USER_FIELD_CHECK']) && $options['DISABLE_USER_FIELD_CHECK'] === true); if ($enableUserFieldCheck) { CCrmEntityHelper::NormalizeUserFields( $arFields, self::$sUFEntityID, $USER_FIELD_MANAGER, array('IS_NEW' => ($ID == false)) ); $enableRequiredUserFieldCheck = !(isset($options['DISABLE_REQUIRED_USER_FIELD_CHECK']) && $options['DISABLE_REQUIRED_USER_FIELD_CHECK'] === true); if(!$USER_FIELD_MANAGER->CheckFields( self::$sUFEntityID, $ID, $arFields, false, $enableRequiredUserFieldCheck)) { $e = $APPLICATION->GetException(); $this->LAST_ERROR .= $e->GetString(); } } if ($this->LAST_ERROR <> '') return false; return true; }