unset($productRow); $params = array('CONTACT_ID' => 0, 'COMPANY_ID' => 0, 'CURRENCY_ID' => $fields['CURRENCY_ID']); $result = CCrmProductRow::CalculateTotalInfo('L', 0, false, $params, $productRows); $fields['OPPORTUNITY'] = isset($result['OPPORTUNITY']) ? $result['OPPORTUNITY'] : 0.0; } } $assignedByID = isset($data['ASSIGNED_BY_ID']) ? intval($data['ASSIGNED_BY_ID']) : 0; if ($assignedByID <= 0) { $assignedByID = intval($curUser->GetID()); } $fields['ASSIGNED_BY_ID'] = $assignedByID; if (isset($data['FM']) && is_array($data['FM']) && !empty($data['FM'])) { $fields['FM'] = $data['FM']; } $entity = new CCrmLead(false); if (!$entity->CheckFields($fields, !$isNew ? $ID : false, array('DISABLE_USER_FIELD_CHECK' => true))) { __CrmMobileLeadEditEndResonse(array('ERROR' => strip_tags(preg_replace("/<br[^>]*>/", "\n", $entity->LAST_ERROR)))); } else { //$DB->StartTransaction(); $successed = false; if ($isNew) { $ID = $entity->Add($fields, true, array('DISABLE_USER_FIELD_CHECK' => true, 'REGISTER_SONET_EVENT' => true)); $successed = $ID !== false; } else { $successed = $entity->Update($ID, $fields, true, true, array('DISABLE_USER_FIELD_CHECK' => true, 'REGISTER_SONET_EVENT' => true)); } if ($successed && $processProductRows && (!$isNew || !empty($productRows))) { $successed = CCrmLead::SaveProductRows($ID, $productRows, false, true, false); if (!$successed) { $fields['RESULT_MESSAGE'] = 'Could not save product rows.'; }
} // Product row settings $productRowSettings = array(); $productRowSettingsFieldName = $productDataFieldName . '_SETTINGS'; if (array_key_exists($productRowSettingsFieldName, $_POST)) { $settingsJson = isset($_POST[$productRowSettingsFieldName]) ? strval($_POST[$productRowSettingsFieldName]) : ''; $arSettings = strlen($settingsJson) > 0 ? CUtil::JsObjectToPhp($settingsJson) : array(); if (is_array($arSettings)) { $productRowSettings['ENABLE_DISCOUNT'] = isset($arSettings['ENABLE_DISCOUNT']) ? $arSettings['ENABLE_DISCOUNT'] === 'Y' : false; $productRowSettings['ENABLE_TAX'] = isset($arSettings['ENABLE_TAX']) ? $arSettings['ENABLE_TAX'] === 'Y' : false; } } unset($productRowSettingsFieldName, $settingsJson, $arSettings); $USER_FIELD_MANAGER->EditFormAddFields(CCrmLead::$sUFEntityID, $arFields); $arResult['ERROR_MESSAGE'] = ''; if (!$CCrmLead->CheckFields($arFields, $bEdit ? $arResult['ELEMENT']['ID'] : false)) { if (!empty($CCrmLead->LAST_ERROR)) { $arResult['ERROR_MESSAGE'] .= $CCrmLead->LAST_ERROR; } else { $arResult['ERROR_MESSAGE'] .= GetMessage('UNKNOWN_ERROR'); } } if (($arBizProcParametersValues = $CCrmBizProc->CheckFields($bEdit ? $arResult['ELEMENT']['ID'] : false, false, $arResult['ELEMENT']['ASSIGNED_BY'], $bEdit ? array($arResult['ELEMENT']['ID'] => $arEntityAttr[$arResult['ELEMENT']['ID']]) : null)) === false) { $arResult['ERROR_MESSAGE'] .= $CCrmBizProc->LAST_ERROR; } if (empty($arResult['ERROR_MESSAGE'])) { $DB->StartTransaction(); $bSuccess = false; if ($bEdit) { $bSuccess = $CCrmLead->Update($arResult['ELEMENT']['ID'], $arFields, true, true, array('REGISTER_SONET_EVENT' => true)); } else {