Exemplo n.º 1
0
     $arProductRows = null;
     if (isset($arParams['PRODUCT_ROWS'])) {
         $arProductRows = $arParams['PRODUCT_ROWS'];
         unset($arParams['PRODUCT_ROWS']);
     }
     $arParams['CURRENCY_ID'] = $currencyID;
     $leadID = $CCrmLead->Add($arParams);
     $arLeads[$ID]['ID'] = $leadID;
     if (is_array($arProductRows)) {
         foreach ($arProductRows as &$arProductRow) {
             $originID = $arProductRow['ORIGIN_ID'];
             $arProduct = CCrmProduct::GetByOriginID($originID, $catalogID);
             if (!is_array($arProduct)) {
                 continue;
             }
             CCrmLead::SaveProductRows($leadID, array(array('PRODUCT_ID' => intval($arProduct['ID']), 'PRICE' => doubleval($arProduct['PRICE']), 'QUANTITY' => 1)));
         }
     }
 }
 // Add Contact
 require_once "contact.demo.php";
 $CCrmContact = new CCrmContact();
 foreach ($arContacts as $ID => $arParams) {
     $arContacts[$ID]['ID'] = $CCrmContact->Add($arParams);
 }
 // Add Company
 require_once "company.demo.php";
 $CCrmCompany = new CCrmCompany();
 foreach ($arCompany as $ID => $arParams) {
     $arCompany[$ID]['ID'] = $CCrmCompany->Add($arParams);
 }
Exemplo n.º 2
0
         if (isset($productID[0])) {
             $arProductRows = CCrmLead::LoadProductRows($ID);
             if (count($arProductRows) > 0) {
                 // already converted
                 continue;
             }
             $arProduct = CCrmProduct::GetByOriginID('CRM_PROD_' . $productID);
             if (!is_array($arProduct)) {
                 continue;
             }
             $productID = isset($arProduct['ID']) ? $arProduct['ID'] : 0;
             if ($productID <= 0) {
                 continue;
             }
             $arProductRows = array(array('PRODUCT_ID' => $productID, 'PRICE' => isset($arLead['OPPORTUNITY']) ? doubleval($arLead['OPPORTUNITY']) : 0.0, 'QUANTITY' => 1));
             CCrmLead::SaveProductRows($ID, $arProductRows);
         }
     }
     COption::SetOptionString('crm', '~crm_11_0_6_convertion', 'Y');
 }
 // <-- Convert LEAD CURRENCY and PRODUCT
 // Convert DEAL EVENTS -->
 if (COption::GetOptionString('crm', '~CRM_DEAL_EVENT_CONVERT_11_5_7', 'N') !== 'Y') {
     $dbDeals = CCrmDeal::GetListEx(array(), array('@EVENT_ID' => array('PHONE', 'INFO')), false, false, array());
     while ($arDeal = $dbDeals->Fetch()) {
         CCrmActivity::CreateFromDealEvent($arDeal);
     }
     COption::SetOptionString('crm', '~CRM_DEAL_EVENT_CONVERT_11_5_7', 'Y');
 }
 // <-- Convert DEAL EVENTS
 // SETUP DEFAULT RESPONSIBLE FOR COMPANIES-->
Exemplo n.º 3
0
     }
     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__']);
             __CrmImportWriteDataToFile($errataFilePath, isset($_SESSION['CRM_IMPORT_FILE_HEADERS']) ? $_SESSION['CRM_IMPORT_FILE_HEADERS'] : null, $arLead['__CSV_DATA__']);
         } else {
             if (!empty($arLead)) {
                 if (isset($arLead['PRODUCT_ROWS']) && count($arLead['PRODUCT_ROWS']) > 0) {
                     if (!CCrmLead::SaveProductRows($arLead['ID'], $arLead['PRODUCT_ROWS'])) {
                         $arResult['error']++;
                         $arResult['error_data'][] = array('message' => CCrmProductRow::GetLastError(), 'data' => $arLead['__CSV_DATA__']);
                         __CrmImportWriteDataToFile($errataFilePath, isset($_SESSION['CRM_IMPORT_FILE_HEADERS']) ? $_SESSION['CRM_IMPORT_FILE_HEADERS'] : null, $arLead['__CSV_DATA__']);
                     }
                 }
                 $arResult['import']++;
             }
         }
     }
 }
 $_SESSION['CRM_IMPORT_FILE_POS'] = $filePos;
 $_SESSION['CRM_IMPORT_FILE_FIRST_HEADER'] = false;
 if ($arResult['error'] > 0) {
     $arResult['errata_url'] = SITE_DIR . 'bitrix/components/bitrix/crm.lead.import/show_file.php?name=errata';
 }
Exemplo n.º 4
0
     $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.';
         }
     }
     if ($successed) {
         //$DB->Commit();
         $errors = array();
         CCrmBizProcHelper::AutoStartWorkflows(CCrmOwnerType::Lead, $ID, $isNew ? CCrmBizProcEventType::Create : 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();
Exemplo n.º 5
0
         }
     }
     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);
         }
         unset($arSettings);
     }
     if ($bSuccess && $processProductRows && ($bEdit || !empty($arProd))) {
         // Suppress owner synchronization
         $bSuccess = CCrmLead::SaveProductRows($arResult['ELEMENT']['ID'], $arProd, true, true, false);
         if (!$bSuccess) {
             $arResult['ERROR_MESSAGE'] = GetMessage('PRODUCT_ROWS_SAVING_ERROR');
         }
     }
     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;
     }
Exemplo n.º 6
0
 public function setProductRows($ID, $rows)
 {
     $ID = intval($ID);
     if ($ID <= 0) {
         throw new RestException('The parameter id is invalid or not defined.');
     }
     if (!is_array($rows)) {
         throw new RestException('The parameter rows must be array.');
     }
     if (!CCrmLead::CheckUpdatePermission($ID)) {
         throw new RestException('Access denied.');
     }
     if (!CCrmLead::Exists($ID)) {
         throw new RestException('Not found.');
     }
     $proxy = new CCrmProductRowRestProxy();
     $actualRows = array();
     $qty = count($rows);
     for ($i = 0; $i < $qty; $i++) {
         $row = $rows[$i];
         if (!is_array($row)) {
             continue;
         }
         $proxy->prepareForSave($row);
         if (isset($row['OWNER_TYPE'])) {
             unset($row['OWNER_TYPE']);
         }
         if (isset($row['OWNER_ID'])) {
             unset($row['OWNER_ID']);
         }
         $actualRows[] = $row;
     }
     return CCrmLead::SaveProductRows($ID, $actualRows, true, true, true);
 }