Exemple #1
0
     if ($bSuccess) {
         $DB->Commit();
     } else {
         $DB->Rollback();
         $arResult['ERROR_MESSAGE'] = !empty($arFields['RESULT_MESSAGE']) ? $arFields['RESULT_MESSAGE'] : GetMessage('UNKNOWN_ERROR');
     }
 }
 if (empty($arResult['ERROR_MESSAGE'])) {
     if (!$CCrmBizProc->StartWorkflow($arResult['ELEMENT']['ID'], $arBizProcParametersValues)) {
         $arResult['ERROR_MESSAGE'] = $CCrmBizProc->LAST_ERROR;
     }
 }
 $ID = isset($arResult['ELEMENT']['ID']) ? $arResult['ELEMENT']['ID'] : 0;
 if (!empty($arResult['ERROR_MESSAGE'])) {
     ShowError($arResult['ERROR_MESSAGE']);
     $arResult['ELEMENT'] = CCrmComponentHelper::PrepareEntityFields(array_merge(array('ID' => $ID), $arFields), CCrmLead::GetFields());
 } else {
     if (isset($_POST['apply'])) {
         if (CCrmLead::CheckUpdatePermission($ID)) {
             LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_EDIT'], array('lead_id' => $ID)));
         }
     } elseif (isset($_POST['saveAndAdd'])) {
         LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_EDIT'], array('lead_id' => 0)));
     } elseif (isset($_POST['saveAndView'])) {
         if (CCrmLead::CheckReadPermission($ID)) {
             LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_SHOW'], array('lead_id' => $ID)));
         }
     }
     // save
     LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_LIST'], array()));
 }
Exemple #2
-12
 public function Add($data)
 {
     global $DB;
     if (($r = self::CheckAuth()) !== false) {
         return $r;
     }
     $arFieldsInfo = CCrmLead::GetFields();
     $arFields = array();
     $arEl = $data->elementsByName('Field');
     foreach ($arEl as $child) {
         $children = $child->children();
         $sFieldName = $child->getAttribute('id');
         // Fix for issue #40193
         if (!isset($arFieldsInfo[$sFieldName])) {
             continue;
         }
         if (!is_null($children)) {
             $arFields[$sFieldName] = array();
             foreach ($children as $child) {
                 $arFields[$sFieldName][] = $child->content;
             }
         } else {
             $arFields[$sFieldName] = $child->content;
         }
     }
     CCrmFieldMulti::PrepareFields($arFields);
     $CCrmUserType = new CCrmUserType($GLOBALS['USER_FIELD_MANAGER'], CCrmLead::$sUFEntityID);
     $CCrmUserType->InternalizeFields($arFields, ',');
     $CCrmBizProc = new CCrmBizProc('LEAD');
     if (false === $CCrmBizProc->CheckFields(false, true)) {
         return new CSoapFault('CCrmLead::Add Bizproc', htmlspecialcharsbx(strip_tags(nl2br($CCrmBizProc->LAST_ERROR))));
     }
     $CCrmLead = new CCrmLead();
     $DB->StartTransaction();
     $ID = $CCrmLead->Add($arFields);
     if ($ID !== false && !$CCrmBizProc->StartWorkflow($ID)) {
         $DB->Rollback();
         return new CSoapFault('CCrmLead::Add Bizproc', htmlspecialcharsbx(strip_tags(nl2br($CCrmBizProc->LAST_ERROR))));
     }
     if ($ID === false) {
         $DB->Rollback();
         return new CSoapFault('CCrmLead::Add', htmlspecialcharsbx(strip_tags(nl2br($arFields['RESULT_MESSAGE']))));
     }
     $DB->Commit();
     return 'ok';
 }