public static function GetEditUrl($typeID, $ID, $bCheckPermissions = false)
 {
     $typeID = intval($typeID);
     $ID = intval($ID);
     if ($ID <= 0) {
         $ID = 0;
     }
     switch ($typeID) {
         case self::Lead:
             if ($bCheckPermissions && !($ID > 0 ? CCrmLead::CheckUpdatePermission($ID) : CCrmLead::CheckCreatePermission())) {
                 return '';
             }
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_edit'), array('lead_id' => $ID));
         case self::Contact:
             if ($bCheckPermissions && !($ID > 0 ? CCrmContact::CheckUpdatePermission($ID) : CCrmContact::CheckCreatePermission())) {
                 return '';
             }
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_edit'), array('contact_id' => $ID));
         case self::Company:
             if ($bCheckPermissions && !($ID > 0 ? CCrmCompany::CheckUpdatePermission($ID) : CCrmCompany::CheckCreatePermission())) {
                 return '';
             }
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_edit'), array('company_id' => $ID));
         case self::Deal:
             if ($bCheckPermissions && !($ID > 0 ? CCrmDeal::CheckUpdatePermission($ID) : CCrmDeal::CheckCreatePermission())) {
                 return '';
             }
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_edit'), array('deal_id' => $ID));
         case self::Invoice:
             if ($bCheckPermissions && !($ID > 0 ? CCrmInvoice::CheckUpdatePermission($ID) : CCrmInvoice::CheckCreatePermission())) {
                 return '';
             }
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_invoice_edit'), array('invoice_id' => $ID));
         case self::Quote:
             if ($bCheckPermissions && !($ID > 0 ? CCrmQuote::CheckUpdatePermission($ID) : CCrmQuote::CheckCreatePermission())) {
                 return '';
             }
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_edit'), array('quote_id' => $ID));
         case self::Activity:
             return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_activity_edit'), array('activity_id' => $ID));
         default:
             return '';
     }
 }
Exemple #2
0
        $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), CCrmQuote::GetFields());
        } else {
            /*if (intval($_POST['SYNC_ORDER_ID']) > 0)
            		{
            			LocalRedirect(
            				CComponentEngine::MakePathFromTemplate(
            					$arParams['PATH_TO_QUOTE_SHOW'],
            					array('quote_id' => $ID)
            				)
            			);
            		}*/
            if (isset($_POST['apply'])) {
                if (CCrmQuote::CheckUpdatePermission($ID)) {
                    LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_EDIT'], array('quote_id' => $ID)));
                }
            } elseif (isset($_POST['saveAndAdd'])) {
                LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_EDIT'], array('quote_id' => 0)));
            } elseif (isset($_POST['saveAndView'])) {
                if (CCrmQuote::CheckReadPermission($ID)) {
                    LocalRedirect(empty($arResult['QUOTE_REFERER']) ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_SHOW'], array('quote_id' => $ID)) : $arResult['QUOTE_REFERER']);
                }
            }
            // save
            LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_LIST'], array()));
        }
    }
} elseif (isset($_GET['delete']) && check_bitrix_sessid()) {
    if ($bEdit) {
Exemple #3
0
     }
     if ($itemQty > 0) {
         CCrmLead::RebuildEntityAccessAttrs($itemIDs);
         $progressData['TOTAL_ITEMS'] = $totalItemQty;
         $processedItemQty += $itemQty;
         $progressData['PROCESSED_ITEMS'] = $processedItemQty;
         $progressData['LAST_ITEM_ID'] = $itemIDs[$itemQty - 1];
         COption::SetOptionString('crm', '~CRM_REBUILD_LEAD_ATTR_PROGRESS', serialize($progressData));
         __CrmConfigPermsEndResonse(array('STATUS' => 'PROGRESS', 'PROCESSED_ITEMS' => $processedItemQty, 'TOTAL_ITEMS' => $totalItemQty, 'SUMMARY' => GetMessage('CRM_CONFIG_PERMS_REBUILD_ATTR_PROGRESS_SUMMARY', array('#PROCESSED_ITEMS#' => $processedItemQty, '#TOTAL_ITEMS#' => $totalItemQty))));
     } else {
         COption::RemoveOption('crm', '~CRM_REBUILD_LEAD_ATTR');
         COption::RemoveOption('crm', '~CRM_REBUILD_LEAD_ATTR_PROGRESS');
         __CrmConfigPermsEndResonse(array('STATUS' => 'COMPLETED', 'PROCESSED_ITEMS' => $processedItemQty, 'TOTAL_ITEMS' => $totalItemQty, 'SUMMARY' => GetMessage('CRM_CONFIG_PERMS_REBUILD_ATTR_COMPLETED_SUMMARY', array('#PROCESSED_ITEMS#' => $processedItemQty))));
     }
 } elseif ($entityTypeID === CCrmOwnerType::Quote) {
     if (!CCrmQuote::CheckUpdatePermission(0)) {
         __CrmConfigPermsEndResonse(array('ERROR' => 'Access denied.'));
     }
     if (COption::GetOptionString('crm', '~CRM_REBUILD_QUOTE_ATTR', 'N') !== 'Y') {
         __CrmConfigPermsEndResonse(array('STATUS' => 'NOT_REQUIRED', 'SUMMARY' => GetMessage('CRM_CONFIG_PERMS_REBUILD_ATTR_NOT_REQUIRED_SUMMARY')));
     }
     $progressData = COption::GetOptionString('crm', '~CRM_REBUILD_QUOTE_ATTR_PROGRESS', '');
     $progressData = $progressData !== '' ? unserialize($progressData) : array();
     $lastItemID = isset($progressData['LAST_ITEM_ID']) ? intval($progressData['LAST_ITEM_ID']) : 0;
     $processedItemQty = isset($progressData['PROCESSED_ITEMS']) ? intval($progressData['PROCESSED_ITEMS']) : 0;
     $totalItemQty = isset($progressData['TOTAL_ITEMS']) ? intval($progressData['TOTAL_ITEMS']) : 0;
     if ($totalItemQty <= 0) {
         $totalItemQty = CCrmQuote::GetList(array(), array('CHECK_PERMISSIONS' => 'N'), array(), false);
     }
     $filter = array('CHECK_PERMISSIONS' => 'N');
     if ($lastItemID > 0) {
Exemple #4
0
            		);*/
        }
    }
}
if ($mode === 'GET_USER_SELECTOR') {
    if (!CCrmQuote::CheckUpdatePermission(0, $currentUserPermissions)) {
        __CrmQuoteShowEndHtmlResonse();
    }
    $name = isset($_POST['NAME']) ? $_POST['NAME'] : '';
    $GLOBALS['APPLICATION']->RestartBuffer();
    Header('Content-Type: text/html; charset=' . LANG_CHARSET);
    $APPLICATION->IncludeComponent('bitrix:intranet.user.selector.new', '.default', array('MULTIPLE' => 'N', 'NAME' => $name, 'POPUP' => 'Y', 'SITE_ID' => SITE_ID), null, array('HIDE_ICONS' => 'Y'));
    __CrmQuoteShowEndHtmlResonse();
}
if ($mode === 'GET_VISUAL_EDITOR') {
    if (!CCrmQuote::CheckUpdatePermission(0, $currentUserPermissions)) {
        __CrmQuoteShowEndHtmlResonse();
    }
    $lheEditorID = isset($_POST['EDITOR_ID']) ? $_POST['EDITOR_ID'] : '';
    $lheEditorName = isset($_POST['EDITOR_NAME']) ? $_POST['EDITOR_NAME'] : '';
    CModule::IncludeModule('fileman');
    $GLOBALS['APPLICATION']->RestartBuffer();
    Header('Content-Type: text/html; charset=' . LANG_CHARSET);
    $emailEditor = new CLightHTMLEditor();
    $emailEditor->Show(array('id' => $lheEditorID, 'height' => '250', 'BBCode' => false, 'bUseFileDialogs' => false, 'bFloatingToolbar' => false, 'bArisingToolbar' => false, 'bResizable' => false, 'autoResizeOffset' => 20, 'jsObjName' => $lheEditorName, 'bInitByJS' => false, 'bSaveOnBlur' => false, 'toolbarConfig' => array('Bold', 'Italic', 'Underline', 'Strike', 'BackColor', 'ForeColor', 'CreateLink', 'DeleteLink', 'InsertOrderedList', 'InsertUnorderedList', 'Outdent', 'Indent')));
    __CrmQuoteShowEndHtmlResonse();
}
if ($mode === 'GET_ENTITY_SIP_INFO') {
    $entityType = isset($_POST['ENITY_TYPE']) ? $_POST['ENITY_TYPE'] : '';
    $m = null;
    if ($entityType === '' || preg_match('/^CRM_([A-Z]+)$/i', $entityType, $m) !== 1) {
Exemple #5
0
}
$arResult['TOOLBAR_ID'] = $toolbarID;
$arResult['BUTTONS'] = array();
if ($arParams['TYPE'] == 'list') {
    $bRead = !$CrmPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'READ');
    $bExport = !$CrmPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'EXPORT');
    //$bImport = !$CrmPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'IMPORT');
    $bAdd = !$CrmPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'ADD');
    $bWrite = !$CrmPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'WRITE');
    $bDelete = false;
} else {
    $bExport = false;
    //$bImport = false;
    $bRead = CCrmQuote::CheckReadPermission($arParams['ELEMENT_ID'], $CrmPerms);
    $bAdd = CCrmQuote::CheckCreatePermission($CrmPerms);
    $bWrite = CCrmQuote::CheckUpdatePermission($arParams['ELEMENT_ID'], $CrmPerms);
    $bDelete = CCrmQuote::CheckDeletePermission($arParams['ELEMENT_ID'], $CrmPerms);
}
if (!$bRead && !$bAdd && !$bWrite) {
    return false;
}
if ($arParams['TYPE'] === 'list') {
    if ($bAdd) {
        $arResult['BUTTONS'][] = array('TEXT' => GetMessage('QUOTE_ADD'), 'TITLE' => GetMessage('QUOTE_ADD_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_EDIT'], array('quote_id' => 0)), 'HIGHLIGHT' => true);
    }
    /*if ($bImport)
    	{
    		$arResult['BUTTONS'][] = array(
    			'TEXT' => GetMessage('QUOTE_IMPORT'),
    			'TITLE' => GetMessage('QUOTE_IMPORT_TITLE'),
    			'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_IMPORT'], array()),
 public function executePhase()
 {
     if ($this->currentPhase === DealConversionPhase::INVOICE_CREATION || $this->currentPhase === DealConversionPhase::QUOTE_CREATION) {
         if ($this->currentPhase === DealConversionPhase::INVOICE_CREATION) {
             $entityTypeID = \CCrmOwnerType::Invoice;
         } else {
             $entityTypeID = \CCrmOwnerType::Quote;
         }
         $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::Invoice) {
                 if (!\CCrmInvoice::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Invoice, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 if (!\CCrmInvoice::CheckUpdatePermission($entityID, $permissions)) {
                     throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Invoice, EntityConversionException::TARG_DST, EntityConversionException::UPDATE_DENIED);
                 }
                 $entity = new \CCrmInvoice(false);
                 $fields = array('UF_DEAL_ID' => $this->entityID);
                 try {
                     $entity->Update($entityID, $fields);
                 } catch (Main\DB\SqlQueryException $e) {
                 }
                 $this->resultData[$entityTypeName] = $entityID;
             } else {
                 if (!\CCrmQuote::Exists($entityID)) {
                     throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Quote, EntityConversionException::TARG_DST, EntityConversionException::NOT_FOUND);
                 }
                 if (!\CCrmQuote::CheckUpdatePermission($entityID, $permissions)) {
                     throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Quote, EntityConversionException::TARG_DST, EntityConversionException::UPDATE_DENIED);
                 }
                 $entity = new \CCrmQuote(false);
                 $fields = array('DEAL_ID' => $this->entityID);
                 $entity->Update($entityID, $fields);
                 $this->resultData[$entityTypeName] = $entityID;
             }
             return true;
         }
         if (!\CCrmAuthorizationHelper::CheckCreatePermission($entityTypeName, $permissions)) {
             throw new EntityConversionException(\CCrmOwnerType::Deal, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::CREATE_DENIED);
         }
         if (UserFieldSynchronizer::needForSynchronization(\CCrmOwnerType::Deal, $entityTypeID)) {
             throw new EntityConversionException(\CCrmOwnerType::Deal, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::NOT_SYNCHRONIZED);
         }
         if (!ConversionSettings::getCurrent()->isAutocreationEnabled()) {
             throw new EntityConversionException(\CCrmOwnerType::Deal, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::AUTOCREATION_DISABLED);
         }
         /** @var DealConversionMapper $mapper */
         $mapper = $this->getMapper();
         $map = self::prepareMap($entityTypeID);
         $fields = $mapper->map($map);
         if (empty($fields)) {
             throw new EntityConversionException(\CCrmOwnerType::Deal, $entityTypeID, EntityConversionException::TARG_DST, EntityConversionException::EMPTY_FIELDS);
         }
         if ($entityTypeID === \CCrmOwnerType::Invoice) {
             $entity = new \CCrmInvoice(false);
             if (!$entity->CheckFields($fields)) {
                 throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Invoice, EntityConversionException::TARG_DST, EntityConversionException::INVALID_FIELDS, $entity->LAST_ERROR);
             }
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Invoice, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             $this->resultData[\CCrmOwnerType::InvoiceName] = $entityID;
         } else {
             $entity = new \CCrmQuote(false);
             if (!$entity->CheckFields($fields)) {
                 throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Quote, EntityConversionException::TARG_DST, EntityConversionException::INVALID_FIELDS, $entity->LAST_ERROR);
             }
             $productRows = isset($fields['PRODUCT_ROWS']) && is_array($fields['PRODUCT_ROWS']) ? $fields['PRODUCT_ROWS'] : array();
             if (!empty($productRows)) {
                 $currencyID = isset($fields['CURRENCY_ID']) ? $fields['CURRENCY_ID'] : '';
                 $personTypes = \CCrmPaySystem::getPersonTypeIDs();
                 $personTypeID = 0;
                 if (isset($personTypes['COMPANY']) && isset($personTypes['CONTACT'])) {
                     if (isset($fields['COMPANY_ID']) && $fields['COMPANY_ID'] > 0) {
                         $personTypeID = $personTypes['COMPANY'];
                     } elseif (isset($fields['CONTACT_ID']) && $fields['CONTACT_ID'] > 0) {
                         $personTypeID = $personTypes['CONTACT'];
                     }
                 }
                 if ($currencyID !== '' && $personTypeID > 0) {
                     $calculationOptions = array();
                     if (\CCrmTax::isTaxMode() && isset($fields['LOCATION_ID'])) {
                         $calculationOptions['LOCATION_ID'] = $fields['LOCATION_ID'];
                     }
                     $result = \CCrmSaleHelper::Calculate($productRows, $currencyID, $personTypeID, false, SITE_ID, $calculationOptions);
                     $arFields['OPPORTUNITY'] = isset($result['PRICE']) ? round(doubleval($result['PRICE']), 2) : 1.0;
                     $arFields['TAX_VALUE'] = isset($result['TAX_VALUE']) ? round(doubleval($result['TAX_VALUE']), 2) : 0.0;
                 }
             }
             $entityID = $entity->Add($fields);
             if ($entityID <= 0) {
                 throw new EntityConversionException(\CCrmOwnerType::Deal, \CCrmOwnerType::Quote, EntityConversionException::TARG_DST, EntityConversionException::CREATE_FAILED, $entity->LAST_ERROR);
             }
             $this->resultData[\CCrmOwnerType::QuoteName] = $entityID;
         }
         return true;
     } elseif ($this->currentPhase === DealConversionPhase::FINALIZATION) {
         return true;
     }
     return false;
 }
Exemple #7
0
use Bitrix\Crm\Integration\StorageType;
if (!CModule::IncludeModule('crm')) {
    ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED'));
    return;
}
// 'Fileman' module always installed
CModule::IncludeModule('fileman');
$CCrmQuote = new CCrmQuote();
if ($CCrmQuote->cPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'READ')) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
CUtil::InitJSCore(array('ajax', 'tooltip'));
$arResult['EDITABLE_FIELDS'] = array();
$arResult['ELEMENT_ID'] = $arParams['ELEMENT_ID'] = isset($arParams['ELEMENT_ID']) ? intval($arParams['ELEMENT_ID']) : 0;
$arResult['CAN_EDIT'] = CCrmQuote::CheckUpdatePermission($arResult['ELEMENT_ID'], $CCrmQuote->cPerms);
$arResult['PREFIX'] = isset($arParams['~PREFIX']) ? $arParams['~PREFIX'] : 'crm_quote_show';
$arParams['PATH_TO_QUOTE_LIST'] = CrmCheckPath('PATH_TO_QUOTE_LIST', $arParams['PATH_TO_QUOTE_LIST'], $APPLICATION->GetCurPage());
$arResult['PATH_TO_QUOTE_SHOW'] = $arParams['PATH_TO_QUOTE_SHOW'] = CrmCheckPath('PATH_TO_QUOTE_SHOW', $arParams['PATH_TO_QUOTE_SHOW'], $APPLICATION->GetCurPage() . '?quote_id=#quote_id#&show');
$arParams['PATH_TO_QUOTE_EDIT'] = CrmCheckPath('PATH_TO_QUOTE_EDIT', $arParams['PATH_TO_QUOTE_EDIT'], $APPLICATION->GetCurPage() . '?quote_id=#quote_id#&edit');
$arParams['PATH_TO_QUOTE_PAYMENT'] = CrmCheckPath('PATH_TO_QUOTE_PAYMENT', $arParams['PATH_TO_QUOTE_PAYMENT'], $APPLICATION->GetCurPage() . '?quote_id=#quote_id#&payment');
$arParams['PATH_TO_DEAL_SHOW'] = CrmCheckPath('PATH_TO_DEAL_SHOW', $arParams['PATH_TO_DEAL_SHOW'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&show');
$arParams['PATH_TO_DEAL_EDIT'] = CrmCheckPath('PATH_TO_DEAL_EDIT', $arParams['PATH_TO_DEAL_EDIT'], $APPLICATION->GetCurPage() . '?deal_id=#deal_id#&edit');
$arParams['PATH_TO_CONTACT_SHOW'] = CrmCheckPath('PATH_TO_CONTACT_SHOW', $arParams['PATH_TO_CONTACT_SHOW'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&show');
$arParams['PATH_TO_CONTACT_EDIT'] = CrmCheckPath('PATH_TO_CONTACT_EDIT', $arParams['PATH_TO_CONTACT_EDIT'], $APPLICATION->GetCurPage() . '?contact_id=#contact_id#&edit');
$arParams['PATH_TO_COMPANY_SHOW'] = CrmCheckPath('PATH_TO_COMPANY_SHOW', $arParams['PATH_TO_COMPANY_SHOW'], $APPLICATION->GetCurPage() . '?company_id=#company_id#&show');
$arParams['PATH_TO_COMPANY_EDIT'] = CrmCheckPath('PATH_TO_COMPANY_EDIT', $arParams['PATH_TO_COMPANY_EDIT'], $APPLICATION->GetCurPage() . '?company_id=#company_id#&edit');
$arParams['PATH_TO_LEAD_SHOW'] = CrmCheckPath('PATH_TO_LEAD_SHOW', $arParams['PATH_TO_LEAD_SHOW'], $APPLICATION->GetCurPage() . '?lead_id=#lead_id#&show');
$arParams['PATH_TO_LEAD_EDIT'] = CrmCheckPath('PATH_TO_LEAD_EDIT', $arParams['PATH_TO_LEAD_EDIT'], $APPLICATION->GetCurPage() . '?lead_id=#lead_id#&edit');
$arParams['PATH_TO_LEAD_CONVERT'] = CrmCheckPath('PATH_TO_LEAD_CONVERT', $arParams['PATH_TO_LEAD_CONVERT'], $APPLICATION->GetCurPage() . '?lead_id=#lead_id#&convert');
$arParams['PATH_TO_USER_PROFILE'] = CrmCheckPath('PATH_TO_USER_PROFILE', $arParams['PATH_TO_USER_PROFILE'], '/company/personal/user/#user_id#/');