Exemplo n.º 1
1
                                         }
                                     }
                                 } else {
                                     if (!isset($item['FM'][$type])) {
                                         $item['FM'][$type] = array();
                                     }
                                     for ($i = 0; $i < $valueCount; $i++) {
                                         $item['FM'][$type]['n' . strval($i + 1)] = array('VALUE_TYPE' => $valueType, 'VALUE' => $values[$i]['VALUE']);
                                     }
                                 }
                             }
                         }
                     }
                 }
                 unset($valueTypes);
                 $CCrmLead->Update($item['ID'], $item);
             }
             unset($item);
         }
     }
 }
 if ($isDuplicate) {
     $arResult['duplicate']++;
     if ($enableDupFile) {
         __CrmImportWriteDataToFile($duplicateFilePath, isset($_SESSION['CRM_IMPORT_FILE_HEADERS']) ? $_SESSION['CRM_IMPORT_FILE_HEADERS'] : null, $arLead['__CSV_DATA__']);
     }
 } else {
     $arLead['PERMISSION'] = 'IMPORT';
     if (!$CCrmLead->Add($arLead)) {
         $arResult['error']++;
         $arResult['error_data'][] = array('message' => $arLead['RESULT_MESSAGE'], 'data' => $arLead['__CSV_DATA__']);
Exemplo n.º 2
1
    }
    if (isset($arFields['CREATED_BY_ID'])) {
        unset($arFields['CREATED_BY_ID']);
    }
    if (isset($arFields['DATE_CREATE'])) {
        unset($arFields['DATE_CREATE']);
    }
    if (isset($arFields['MODIFY_BY_ID'])) {
        unset($arFields['MODIFY_BY_ID']);
    }
    if (isset($arFields['DATE_MODIFY'])) {
        unset($arFields['DATE_MODIFY']);
    }
    $arFields['STATUS_ID'] = $statusID;
    $CCrmLead = new CCrmLead(false);
    if ($CCrmLead->Update($ID, $arFields, true, true, array('DISABLE_USER_FIELD_CHECK' => true, 'REGISTER_SONET_EVENT' => true))) {
        $arErrors = array();
        CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $ID, CCrmBizProcEventType::Edit, $arErrors);
    }
    __CrmLeadListEndResonse(array('TYPE' => $targetTypeName, 'ID' => $ID, 'VALUE' => $statusID));
} elseif ($action === 'REBUILD_DUPLICATE_INDEX') {
    __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
    $params = isset($_POST['PARAMS']) && is_array($_POST['PARAMS']) ? $_POST['PARAMS'] : array();
    $entityTypeName = isset($params['ENTITY_TYPE_NAME']) ? $params['ENTITY_TYPE_NAME'] : '';
    if ($entityTypeName === '') {
        __CrmLeadListEndResonse(array('ERROR' => 'Entity type is not specified.'));
    }
    $entityTypeID = CCrmOwnerType::ResolveID($entityTypeName);
    if ($entityTypeID === CCrmOwnerType::Undefined) {
        __CrmLeadListEndResonse(array('ERROR' => 'Undefined entity type is specified.'));
    }
Exemplo n.º 3
1
 public static function RecoverDocumentFromHistory($documentId, $arDocument)
 {
     $arDocumentID = self::GetDocumentInfo($documentId);
     if (empty($arDocumentID)) {
         throw new CBPArgumentNullException('documentId');
     }
     $arFields = $arDocument['FIELDS'];
     switch ($arDocumentID['TYPE']) {
         case 'CONTACT':
             $CCrmEntity = new CCrmContact();
             if (!empty($arFields['PHOTO'])) {
                 $arFields['PHOTO'] = CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'] . $arFields['PHOTO']);
             }
             break;
         case 'COMPANY':
             $CCrmEntity = new CCrmCompany();
             if (!empty($arFields['LOGO'])) {
                 $arFields['LOGO'] = CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'] . $arFields['LOGO']);
             }
             break;
         case 'DEAL':
             $CCrmEntity = new CCrmDeal();
             break;
         case 'LEAD':
             $CCrmEntity = new CCrmLead();
             break;
     }
     $res = $CCrmEntity->Update($arDocumentID['ID'], $arFields);
     if (intVal($arFields['WF_STATUS_ID']) > 1 && intVal($arFields['WF_PARENT_ELEMENT_ID']) <= 0) {
         self::UnpublishDocument($documentId);
     }
     if (!$res) {
         throw new Exception($CCrmEntity->LAST_ERROR);
     }
     return true;
 }
Exemplo n.º 4
0
             if (!is_array($arProduct)) {
                 continue;
             }
             CCrmDeal::SaveProductRows($dealID, array(array('PRODUCT_ID' => intval($arProduct['ID']), 'PRICE' => doubleval($arProduct['PRICE']), 'QUANTITY' => 1)));
         }
     }
 }
 // Add event
 require_once "event.demo.php";
 $CCrmEvent = new CCrmEvent();
 foreach ($arEvents as $ID => $arParams) {
     $arEvents[$ID]['ID'] = $CCrmEvent->Add($arParams);
 }
 // Add relation
 $arParams = array('COMPANY_ID' => $arCompany['39']['ID'], 'CONTACT_ID' => $arContacts['51']['ID']);
 $CCrmLead->Update($arLeads['57']['ID'], $arParams);
 // Add activity
 require_once "activity.demo.php";
 $CCrmActivity = new CCrmActivity();
 foreach ($arActivities as $ID => $arParams) {
     $activityId = $CCrmActivity->Add($arParams["FIELDS"], false, false);
     CCrmActivity::SaveCommunications($activityId, array($arParams["COMMUNICATIONS"]), $arParams["FIELDS"], false, false);
 }
 //Add invoice
 CCrmInvoice::installDisableSaleEvents();
 require_once "invoice.demo.php";
 $CCrmInvoice = new CCrmInvoice();
 $b_false = false;
 foreach ($arInvoices as $arInvoice) {
     $CCrmInvoice->Add($arInvoice, $b_false, WIZARD_SITE_ID);
 }
Exemplo n.º 5
0
             }
             $dbLead = CCrmLead::GetListEx(array(), array('ID' => $ID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('STATUS_ID'), array());
             $arLead = $dbLead ? $dbLead->Fetch() : null;
             if (!is_array($arLead) || isset($arLead['STATUS_ID']) && $arLead['STATUS_ID'] === 'CONVERTED') {
                 continue;
             }
             $arUpdateData = array();
             reset($arResult['HEADERS']);
             foreach ($arResult['HEADERS'] as $arHead) {
                 if (isset($arHead['editable']) && (is_array($arHead['editable']) || $arHead['editable'] == true) && isset($arSrcData[$arHead['id']])) {
                     $arUpdateData[$arHead['id']] = $arSrcData[$arHead['id']];
                 }
             }
             if (!empty($arUpdateData)) {
                 $DB->StartTransaction();
                 if ($CCrmLead->Update($ID, $arUpdateData)) {
                     $DB->Commit();
                     CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $ID, CCrmBizProcEventType::Edit, $arErrors);
                 } else {
                     $DB->Rollback();
                 }
             }
         }
     }
 } elseif ($actionData['NAME'] == 'tasks') {
     if (isset($actionData['ID']) && is_array($actionData['ID'])) {
         $arTaskID = array();
         foreach ($actionData['ID'] as $ID) {
             $arTaskID[] = 'L_' . $ID;
         }
         $APPLICATION->RestartBuffer();
Exemplo n.º 6
0
     $eventDate = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', SITE_ID);
 }
 if (!($eventDate !== '' && CheckDateTime($eventDate, FORMAT_DATETIME))) {
     $eventDate = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', SITE_ID);
 }
 $CCrmEvent->Add(array('ENTITY_TYPE' => $entityTypeID, 'ENTITY_ID' => $entityID, 'EVENT_ID' => $eventID, 'EVENT_TEXT_1' => $eventDesc, 'DATE_CREATE' => $eventDate, 'FILES' => $eventFiles));
 switch ($entityTypeID) {
     case 'LEAD':
         if (isset($_POST['STATUS_ID'])) {
             $statusID = $_POST['STATUS_ID'];
             $dbResult = CCrmLead::GetListEx(array(), array('=ID' => $entityID), false, false, array('STATUS_ID'));
             $arPrevious = $dbResult ? $dbResult->Fetch() : null;
             if (is_array($arPrevious) && isset($arPrevious['STATUS_ID']) && $arPrevious['STATUS_ID'] !== $statusID) {
                 $CCrmLead = new CCrmLead();
                 $arField = array('STATUS_ID' => $statusID);
                 if ($CCrmLead->Update($entityID, $arField)) {
                     $arErrors = array();
                     CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $entityID, CCrmBizProcEventType::Edit, $arErrors);
                 }
             }
         }
         $dbRes = CCrmLead::GetListEx(array(), array('ID' => $entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'STATUS_ID', 'CONTACT_ID', 'COMPANY_ID'));
         $arLead = $dbRes->Fetch();
         if (is_array($arLead)) {
             $statusID = isset($arLead['STATUS_ID']) ? $arLead['STATUS_ID'] : '';
             $contactID = isset($arLead['CONTACT_ID']) ? intval($arLead['CONTACT_ID']) : 0;
             if ($contactID > 0 && !CCrmContact::Exists($contactID)) {
                 $contactID = 0;
             }
             $companyID = isset($arLead['COMPANY_ID']) ? intval($arLead['COMPANY_ID']) : 0;
             if ($companyID > 0 && !CCrmCompany::Exists($companyID)) {
Exemplo n.º 7
0
 public static function UpdateDocument($documentId, $arFields)
 {
     global $DB;
     $arDocumentID = self::GetDocumentInfo($documentId);
     if (empty($arDocumentID)) {
         throw new CBPArgumentNullException('documentId');
     }
     $dbDocumentList = CCrmLead::GetList(array(), array('ID' => $arDocumentID['ID'], "CHECK_PERMISSIONS" => "N"), array('ID'));
     $arResult = $dbDocumentList->Fetch();
     if (!$arResult) {
         throw new Exception(GetMessage('CRM_DOCUMENT_ELEMENT_IS_NOT_FOUND'));
     }
     $arDocumentFields = self::GetDocumentFields($arDocumentID['TYPE']);
     $arKeys = array_keys($arFields);
     foreach ($arKeys as $key) {
         if (!array_key_exists($key, $arDocumentFields)) {
             //Fix for issue #40374
             unset($arFields[$key]);
             continue;
         }
         $fieldType = $arDocumentFields[$key]["Type"];
         if (in_array($fieldType, array("phone", "email", "im", "web"), true)) {
             CCrmDocument::PrepareEntityMultiFields($arFields, strtoupper($fieldType));
             continue;
         }
         $arFields[$key] = is_array($arFields[$key]) && !CBPHelper::IsAssociativeArray($arFields[$key]) ? $arFields[$key] : array($arFields[$key]);
         if ($fieldType == "user") {
             $ar = array();
             foreach ($arFields[$key] as $v1) {
                 if (substr($v1, 0, strlen("user_")) == "user_") {
                     $ar[] = substr($v1, strlen("user_"));
                 } else {
                     $a1 = self::GetUsersFromUserGroup($v1, $documentId);
                     foreach ($a1 as $a11) {
                         $ar[] = $a11;
                     }
                 }
             }
             $arFields[$key] = $ar;
         } elseif ($fieldType == "select" && substr($key, 0, 3) == "UF_") {
             $db = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "CRM_LEAD", "FIELD_NAME" => $key));
             if ($ar = $db->Fetch()) {
                 $arV = array();
                 $db = CUserTypeEnum::GetList($ar);
                 while ($ar = $db->GetNext()) {
                     $arV[$ar["XML_ID"]] = $ar["ID"];
                 }
                 foreach ($arFields[$key] as &$value) {
                     if (array_key_exists($value, $arV)) {
                         $value = $arV[$value];
                     }
                 }
                 unset($value);
             }
         } elseif ($fieldType == "file") {
             $arFileOptions = array('ENABLE_ID' => true);
             foreach ($arFields[$key] as &$value) {
                 //Issue #40380. Secure URLs and file IDs are allowed.
                 $file = false;
                 CCrmFileProxy::TryResolveFile($value, $file, $arFileOptions);
                 $value = $file;
             }
             unset($value);
         } elseif ($fieldType == "S:HTML") {
             foreach ($arFields[$key] as &$value) {
                 $value = array("VALUE" => $value);
             }
             unset($value);
         }
         if (!$arDocumentFields[$key]["Multiple"] && is_array($arFields[$key])) {
             if (count($arFields[$key]) > 0) {
                 $a = array_values($arFields[$key]);
                 $arFields[$key] = $a[0];
             } else {
                 $arFields[$key] = null;
             }
         }
     }
     if (isset($arFields['COMMENTS']) && $arFields['COMMENTS'] !== '') {
         $arFields['COMMENTS'] = preg_replace("/[\r\n]+/" . BX_UTF_PCRE_MODIFIER, "<br/>", $arFields['COMMENTS']);
     }
     $DB->StartTransaction();
     $CCrmEntity = new CCrmLead(false);
     $res = $CCrmEntity->Update($arDocumentID['ID'], $arFields);
     if (!$res) {
         $DB->Rollback();
         throw new Exception($CCrmEntity->LAST_ERROR);
     }
     if (COption::GetOptionString("crm", "start_bp_within_bp", "N") == "Y") {
         $CCrmBizProc = new CCrmBizProc('LEAD');
         if (false === $CCrmBizProc->CheckFields($arDocumentID['ID'], true)) {
             throw new Exception($CCrmBizProc->LAST_ERROR);
         }
         if ($res && !$CCrmBizProc->StartWorkflow($arDocumentID['ID'])) {
             $DB->Rollback();
             throw new Exception($CCrmBizProc->LAST_ERROR);
         }
     }
     if ($res) {
         $DB->Commit();
     }
 }
Exemplo n.º 8
0
    }
    $ID = isset($data['ID']) ? intval($data['ID']) : 0;
    if ($ID <= 0) {
        __CrmMobileLeadEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_ID_NOT_FOUND')));
    }
    if (!CCrmLead::CheckUpdatePermission($ID, $curUserPrems)) {
        __CrmMobileLeadEditEndResonse(array('ERROR' => GetMessage('CRM_ACCESS_DENIED')));
    }
    $statusID = isset($data['STATUS_ID']) ? $data['STATUS_ID'] : '';
    if ($statusID === '') {
        __CrmMobileLeadEditEndResonse(array('ERROR' => GetMessage('CRM_LEAD_STATUS_NOT_FOUND')));
    }
    //$DB->StartTransaction();
    $fields = array('STATUS_ID' => $statusID);
    $entity = new CCrmLead(false);
    $successed = $entity->Update($ID, $fields, true, true, array());
    if ($successed) {
        //$DB->Commit();
        $errors = array();
        CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $ID, CCrmBizProcEventType::Edit, $errors);
        $dbRes = CCrmLead::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N'));
        $currentItem = $dbRes->GetNext();
        $formatParams = isset($_REQUEST['FORMAT_PARAMS']) ? $_REQUEST['FORMAT_PARAMS'] : array();
        CCrmMobileHelper::PrepareLeadItem($currentItem, $formatParams);
        __CrmMobileLeadEditEndResonse(array('SAVED_ENTITY_ID' => $ID, 'SAVED_ENTITY_DATA' => CCrmMobileHelper::PrepareLeadData($currentItem)));
    } else {
        //$DB->Rollback();
        __CrmMobileLeadEditEndResonse(array('ERROR' => $fields['RESULT_MESSAGE']));
    }
} elseif ($action === 'CONVERT_MONEY') {
    __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
Exemplo n.º 9
0
 public function SynchronizeProductRows($ID)
 {
     $arTotalInfo = CCrmProductRow::CalculateTotalInfo('L', $ID);
     if (is_array($arTotalInfo)) {
         $arFields = array('OPPORTUNITY' => isset($arTotalInfo['OPPORTUNITY']) ? $arTotalInfo['OPPORTUNITY'] : 0.0, 'TAX_VALUE' => isset($arTotalInfo['TAX_VALUE']) ? $arTotalInfo['TAX_VALUE'] : 0.0);
         $entity = new CCrmLead();
         $entity->Update($ID, $arFields);
     }
 }
Exemplo n.º 10
0
 public function executePhase()
 {
     if ($this->currentPhase === LeadConversionPhase::COMPANY_CREATION || $this->currentPhase === LeadConversionPhase::CONTACT_CREATION || $this->currentPhase === LeadConversionPhase::DEAL_CREATION) {
         if ($this->currentPhase === LeadConversionPhase::COMPANY_CREATION) {
             $entityTypeID = \CCrmOwnerType::Company;
         } elseif ($this->currentPhase === LeadConversionPhase::CONTACT_CREATION) {
             $entityTypeID = \CCrmOwnerType::Contact;
         } else {
             $entityTypeID = \CCrmOwnerType::Deal;
         }
         $entityTypeName = \CCrmOwnerType::ResolveName($entityTypeID);
         $config = $this->config->getItem($entityTypeID);
         if (!$config->isActive()) {
             return false;
         }
         /** @var \CCrmPerms $permissions */
         $permissions = $this->getUserPermissions();
         $entityID = isset($this->contextData[$entityTypeName]) ? $this->contextData[$entityTypeName] : 0;
         if ($entityID > 0) {
             if ($entityTypeID === \CCrmOwnerType::Company) {
                 if (!\CCrmCompany::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Company, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 $entity = new \CCrmCompany(false);
             } elseif ($entityTypeID === \CCrmOwnerType::Contact) {
                 if (!\CCrmContact::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Contact, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 $entity = new \CCrmContact(false);
             } else {
                 if (!\CCrmDeal::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Deal, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 $entity = new \CCrmDeal(false);
             }
             if (!\CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $permissions)) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::UPDATE_DENIED);
             }
             $fields = array('LEAD_ID' => $this->entityID);
             $entity->Update($entityID, $fields);
             $this->resultData[$entityTypeName] = $entityID;
             return true;
         }
         if (!\CCrmAuthorizationHelper::CheckCreatePermission($entityTypeName, $permissions)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::CREATE_DENIED);
         }
         if (UserFieldSynchronizer::needForSynchronization(\CCrmOwnerType::Lead, $entityTypeID)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::NOT_SYNCHRONIZED);
         }
         if (!ConversionSettings::getCurrent()->isAutocreationEnabled()) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::AUTOCREATION_DISABLED);
         }
         if (\CCrmBizProcHelper::HasAutoWorkflows($entityTypeID, \CCrmBizProcEventType::Create)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::HAS_WORKFLOWS);
         }
         /** @var LeadConversionMapper $mapper */
         $mapper = $this->getMapper();
         $map = self::prepareMap($entityTypeID);
         $fields = $mapper->map($map);
         if (empty($fields)) {
             throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::EMPTY_FIELDS);
         }
         if ($entityTypeID === \CCrmOwnerType::Company) {
             $entity = new \CCrmCompany(false);
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Company, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             //region BizProcess
             $arErrors = array();
             \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Company, $entityID, \CCrmBizProcEventType::Create, $arErrors);
             //endregion
             $this->resultData[\CCrmOwnerType::CompanyName] = $entityID;
         } elseif ($entityTypeID === \CCrmOwnerType::Contact) {
             if (isset($this->resultData[\CCrmOwnerType::CompanyName])) {
                 $fields['COMPANY_ID'] = $this->resultData[\CCrmOwnerType::CompanyName];
             }
             $entity = new \CCrmContact(false);
             if (!$entity->CheckFields($fields)) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::INVALID_FIELDS, $entity->LAST_ERROR);
             }
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Contact, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             //region BizProcess
             $arErrors = array();
             \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Contact, $entityID, \CCrmBizProcEventType::Create, $arErrors);
             //endregion
             $this->resultData[\CCrmOwnerType::ContactName] = $entityID;
         } else {
             if (isset($this->resultData[\CCrmOwnerType::ContactName])) {
                 $fields['CONTACT_ID'] = $this->resultData[\CCrmOwnerType::ContactName];
             }
             if (isset($this->resultData[\CCrmOwnerType::CompanyName])) {
                 $fields['COMPANY_ID'] = $this->resultData[\CCrmOwnerType::CompanyName];
             }
             $productRows = isset($fields['PRODUCT_ROWS']) && is_array($fields['PRODUCT_ROWS']) ? $fields['PRODUCT_ROWS'] : array();
             if (!empty($productRows)) {
                 $result = \CCrmProductRow::CalculateTotalInfo('D', 0, false, $fields, $productRows);
                 $fields['OPPORTUNITY'] = isset($result['OPPORTUNITY']) ? $result['OPPORTUNITY'] : 1.0;
                 $fields['TAX_VALUE'] = isset($result['TAX_VALUE']) ? $result['TAX_VALUE'] : 0.0;
             }
             $entity = new \CCrmDeal(false);
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Lead, \CCrmOwnerType::Deal, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             if (!empty($productRows)) {
                 \CCrmDeal::SaveProductRows($entityID, $productRows, false, false, false);
             }
             //region BizProcess
             $arErrors = array();
             \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Deal, $entityID, \CCrmBizProcEventType::Create, $arErrors);
             //endregion
             $this->resultData[\CCrmOwnerType::DealName] = $entityID;
         }
         return true;
     } elseif ($this->currentPhase === LeadConversionPhase::FINALIZATION) {
         $result = \CCrmLead::GetListEx(array(), array('=ID' => $this->entityID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('STATUS_ID'));
         $presentFields = is_object($result) ? $result->Fetch() : null;
         if (is_array($presentFields)) {
             $fields = array();
             $statusID = isset($presentFields['STATUS_ID']) ? $presentFields['STATUS_ID'] : '';
             if ($statusID !== 'CONVERTED') {
                 $fields['STATUS_ID'] = 'CONVERTED';
             }
             if (isset($this->resultData[\CCrmOwnerType::CompanyName])) {
                 $fields['COMPANY_ID'] = $this->resultData[\CCrmOwnerType::CompanyName];
             }
             if (isset($this->resultData[\CCrmOwnerType::ContactName])) {
                 $fields['CONTACT_ID'] = $this->resultData[\CCrmOwnerType::ContactName];
             }
             if (!empty($fields)) {
                 $entity = new \CCrmLead(false);
                 if ($entity->Update($this->entityID, $fields)) {
                     //region BizProcess
                     $arErrors = array();
                     \CCrmBizProcHelper::AutoStartWorkflows(\CCrmOwnerType::Lead, $this->entityID, \CCrmBizProcEventType::Edit, $arErrors);
                     //endregion
                 }
             }
         }
         return true;
     }
     return false;
 }
Exemplo n.º 11
0
 public static function UpdateLead($id, $params)
 {
     if (!isset($params['ASSIGNED_BY_ID'])) {
         return false;
     }
     if (!CModule::IncludeModule('crm')) {
         return false;
     }
     $update = array('ASSIGNED_BY_ID' => $params['ASSIGNED_BY_ID']);
     $CCrmLead = new CCrmLead(false);
     $CCrmLead->Update($id, $update);
     return true;
 }
Exemplo n.º 12
0
 $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 {
         $ID = $CCrmLead->Add($arFields, true, array('REGISTER_SONET_EVENT' => true));
         $bSuccess = $ID !== false;
         if ($bSuccess) {
             $arResult['ELEMENT']['ID'] = $ID;
         }
     }
     if ($bSuccess) {
         // Save settings
         if (is_array($productRowSettings) && count($productRowSettings) > 0) {
             $arSettings = CCrmProductRow::LoadSettings('L', $arResult['ELEMENT']['ID']);
             foreach ($productRowSettings as $k => $v) {
                 $arSettings[$k] = $v;
             }
             CCrmProductRow::SaveSettings('L', $arResult['ELEMENT']['ID'], $arSettings);
Exemplo n.º 13
0
     __CrmLeadShowEndJsonResonse(array('ERROR' => 'FIELD_NAME IS NOT DEFINED!'));
 }
 $fieldValues = array();
 if (isset($_POST['FIELD_VALUE'])) {
     if (is_array($_POST['FIELD_VALUE'])) {
         $fieldValues = $_POST['FIELD_VALUE'];
     } else {
         $fieldValues[] = $_POST['FIELD_VALUE'];
     }
 }
 $dbResult = CCrmLead::GetListEx(array(), array('=ID' => $ID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*'));
 $arFields = is_object($dbResult) ? $dbResult->Fetch() : null;
 if (is_array($arFields)) {
     CCrmInstantEditorHelper::PrepareUpdate(CCrmOwnerType::Lead, $arFields, $fieldNames, $fieldValues);
     $disableUserFieldCheck = !$hasUserFields && isset($_POST['DISABLE_USER_FIELD_CHECK']) && strtoupper($_POST['DISABLE_USER_FIELD_CHECK']) === 'Y';
     if ($CCrmLead->Update($ID, $arFields, true, true, array('REGISTER_SONET_EVENT' => true, 'DISABLE_USER_FIELD_CHECK' => $disableUserFieldCheck))) {
         $arErrors = array();
         CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $ID, CCrmBizProcEventType::Edit, $arErrors);
         $result = array();
         $count = count($fieldNames);
         for ($i = 0; $i < $count; $i++) {
             $fieldName = $fieldNames[$i];
             if (strpos($fieldName, 'FM.') === 0) {
                 //Filed name like 'FM.PHONE.WORK.1279'
                 $fieldParams = explode('.', $fieldName);
                 if (count($fieldParams) >= 3) {
                     $result[$fieldName] = array('VIEW_HTML' => CCrmViewHelper::PrepareMultiFieldHtml($fieldParams[1], array('VALUE_TYPE_ID' => $fieldParams[2], 'VALUE' => isset($fieldValues[$i]) ? $fieldValues[$i] : '')));
                 }
             }
         }
         if (!empty($result)) {
Exemplo n.º 14
0
                    $iDealId = $CCrmDeal->Add($arDealFields, true, array('REGISTER_SONET_EVENT' => true));
                    if ($iDealId > 0) {
                        if (!empty($arDealFields['PRODUCT_ROWS'])) {
                            CCrmDeal::SaveProductRows($iDealId, $arDealFields['PRODUCT_ROWS']);
                        }
                        $CCrmDealBizProc = new CCrmBizProc('DEAL');
                        $arDealBizProcParams = $CCrmDealBizProc->CheckFields(false, false, $arDealFields['ASSIGNED_BY_ID'], null);
                        if ($arDealBizProcParams !== false) {
                            $CCrmDealBizProc->StartWorkflow($iDealId, $arDealBizProcParams);
                        }
                    }
                }
            }
            $CCrmLead = new CCrmLead();
            $arFields['LEAD'] = array('STATUS_ID' => 'CONVERTED', 'CONTACT_ID' => $iContactId, 'COMPANY_ID' => $iCompanyId);
            if ($CCrmLead->Update($arParams['ELEMENT_ID'], $arFields['LEAD'], true, true, array('REGISTER_SONET_EVENT' => true))) {
                $arErrors = array();
                CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $arParams['ELEMENT_ID'], CCrmBizProcEventType::Edit, $arErrors);
            }
            if (isset($_POST['apply'])) {
                LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_CONVERT'], array('lead_id' => $arParams['ELEMENT_ID'])));
            } else {
                LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_LIST'], array()));
            }
        } else {
            ShowError($arResult['ERROR_MESSAGE']);
        }
        $arResult['ELEMENT'] = $arFields;
    }
}
unset($_POST['save'], $_POST['apply']);