public static function GetShowUrl($typeID, $ID, $bCheckPermissions = false) { $typeID = intval($typeID); $ID = intval($ID); if ($ID <= 0) { return ''; } switch ($typeID) { case self::Lead: if ($bCheckPermissions && !CCrmLead::CheckReadPermission($ID)) { return ''; } return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $ID)); case self::Contact: if ($bCheckPermissions && !CCrmContact::CheckReadPermission($ID)) { return ''; } return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $ID)); case self::Company: if ($bCheckPermissions && !CCrmCompany::CheckReadPermission($ID)) { return ''; } return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_show'), array('company_id' => $ID)); case self::Deal: if ($bCheckPermissions && !CCrmDeal::CheckReadPermission($ID)) { return ''; } return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $ID)); case self::Activity: return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_activity_show'), array('activity_id' => $ID)); case self::Invoice: if ($bCheckPermissions && !CCrmInvoice::CheckReadPermission($ID)) { return ''; } return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_invoice_show'), array('invoice_id' => $ID)); case self::Quote: if ($bCheckPermissions && !CCrmQuote::CheckReadPermission($ID)) { return ''; } return CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_show'), array('quote_id' => $ID)); default: return ''; } }
{ 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) { $arResult['ERROR_MESSAGE'] = ''; if (!$CCrmQuote->cPerms->CheckEnityAccess('QUOTE', 'DELETE', $arEntityAttr[$arParams['ELEMENT_ID']])) { $arResult['ERROR_MESSAGE'] .= GetMessage('CRM_PERMISSION_DENIED') . '<br />'; } /*---bizproc---$bDeleteError = !$CCrmBizProc->Delete($arResult['ELEMENT']['ID'], $arEntityAttr[$arParams['ELEMENT_ID']]); if ($bDeleteError)
CUtil::JSPostUnescape(); $APPLICATION->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); $mode = isset($_POST['MODE']) ? $_POST['MODE'] : ''; if (!isset($mode[0])) { echo CUtil::PhpToJSObject(array('ERROR' => 'MODE IS NOT DEFINED!')); die; } $userPermissions = CCrmPerms::GetCurrentUserPermissions(); if ($mode === 'SAVE_PDF') { $quoteID = isset($_POST['QUOTE_ID']) ? intval($_POST['QUOTE_ID']) : 0; if ($quoteID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'QUOTE_ID IS NOT FOUND!')); die; } if (!CCrmQuote::CheckReadPermission($quoteID, $userPermissions)) { echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION DENIED!')); die; } if (!CModule::IncludeModule('sale')) { echo CUtil::PhpToJSObject(array('ERROR' => 'MODULE SALE NOT INCLUDED!')); die; } $paySystemID = isset($_POST['PAY_SYSTEM_ID']) ? intval($_POST['PAY_SYSTEM_ID']) : 0; if ($paySystemID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'PAY_SYSTEM_ID ID NOT FOUND!')); die; } $dbResult = CCrmQuote::GetList(array(), array('ID' => $quoteID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $quoteFields = is_object($dbResult) ? $dbResult->Fetch() : null; if (!is_array($quoteFields)) {
if ($arParams['ELEMENT_ID'] > 0) { $toolbarID .= '_' . $arParams['ELEMENT_ID']; } $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'),
//Security check $userPermissions = CCrmPerms::GetCurrentUserPermissions(); $filter = isset($componentParams['INTERNAL_FILTER']) && is_array($componentParams['INTERNAL_FILTER']) ? $componentParams['INTERNAL_FILTER'] : array(); $contactID = isset($filter['UF_CONTACT_ID']) ? $filter['UF_CONTACT_ID'] : 0; $companyID = isset($filter['UF_COMPANY_ID']) ? $filter['UF_COMPANY_ID'] : 0; $dealID = isset($filter['UF_DEAL_ID']) ? $filter['UF_DEAL_ID'] : 0; $quoteID = isset($filter['UF_QUOTE_ID']) ? $filter['UF_QUOTE_ID'] : 0; $isPermitted = false; if ($contactID > 0) { $isPermitted = CCrmContact::CheckReadPermission($contactID, $userPermissions); } elseif ($companyID > 0) { $isPermitted = CCrmCompany::CheckReadPermission($companyID, $userPermissions); } elseif ($dealID > 0) { $isPermitted = CCrmDeal::CheckReadPermission($dealID, $userPermissions); } elseif ($quoteID > 0) { $isPermitted = CCrmQuote::CheckReadPermission($quoteID, $userPermissions); } if (!$isPermitted) { die; } //For custom reload with params $ajaxLoaderParams = array('url' => '', 'method' => 'POST', 'dataType' => 'ajax', 'data' => array('PARAMS' => $componentData)); global $APPLICATION; Header('Content-Type: text/html; charset=' . LANG_CHARSET); $APPLICATION->ShowAjaxHead(); //Force AJAX mode $componentParams['AJAX_MODE'] = 'Y'; $componentParams['AJAX_OPTION_JUMP'] = 'N'; $componentParams['AJAX_OPTION_HISTORY'] = 'N'; $componentParams['AJAX_LOADER'] = $ajaxLoaderParams; $APPLICATION->IncludeComponent('bitrix:crm.invoice.list', isset($componentData['template']) ? $componentData['template'] : '', $componentParams, false, array('HIDE_ICONS' => 'Y', 'ACTIVE_COMPONENT' => 'Y'));
return; } __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); CUtil::JSPostUnescape(); $APPLICATION->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); $action = isset($_POST['ACTION']) ? $_POST['ACTION'] : ''; if (strlen($action) == 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'INVALID DATA!')); die; } if ($action === 'ENABLE_SONET_SUBSCRIPTION') { $userID = CCrmSecurityHelper::GetCurrentUserID(); $entityTypeName = isset($_POST['ENTITY_TYPE']) ? strtoupper($_POST['ENTITY_TYPE']) : ''; $entityID = isset($_POST['ENTITY_ID']) ? intval($_POST['ENTITY_ID']) : 0; if ($userID > 0 && $entityTypeName === CCrmOwnerType::QuoteName && $entityID > 0 && CCrmQuote::CheckReadPermission($entityID)) { $isEnabled = CCrmSonetSubscription::IsRelationRegistered(CCrmOwnerType::Quote, $entityID, CCrmSonetSubscriptionType::Observation, $userID); $enable = isset($_POST['ENABLE']) && strtoupper($_POST['ENABLE']) === 'Y'; if ($isEnabled !== $enable) { if ($enable) { CCrmSonetSubscription::RegisterSubscription(CCrmOwnerType::Quote, $entityID, CCrmSonetSubscriptionType::Observation, $userID); } else { CCrmSonetSubscription::UnRegisterSubscription(CCrmOwnerType::Quote, $entityID, CCrmSonetSubscriptionType::Observation, $userID); } } } } else { if ($action === 'RECALCULATE') { try { $resultOptions = array(); $options = isset($_POST['OPTIONS']) ? $_POST['OPTIONS'] : array();
$readOnlyMode = !$enableInstantEdit || $isExternal; $arResult['FIELDS']['tab_1'][] = array('id' => 'section_invoice_info', 'name' => GetMessage('CRM_SECTION_INVOICE_INFO'), 'type' => 'section', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'ACCOUNT_NUMBER', 'name' => GetMessage('CRM_FIELD_ACCOUNT_NUMBER'), 'params' => array('size' => 100), 'value' => isset($arResult['ELEMENT']['ACCOUNT_NUMBER']) ? $arResult['ELEMENT']['ACCOUNT_NUMBER'] : '', 'type' => 'label', 'required' => true, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'ORDER_TOPIC', 'name' => GetMessage('CRM_FIELD_ORDER_TOPIC'), 'params' => array('size' => 255), 'value' => isset($arResult['ELEMENT']['ORDER_TOPIC']) ? $arResult['ELEMENT']['ORDER_TOPIC'] : '', 'type' => 'label', 'required' => true, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'STATUS_ID', 'name' => GetMessage('CRM_FIELD_STATUS_ID'), 'type' => 'label', 'value' => $arResult['ELEMENT']['STATUS_TEXT'], 'required' => true, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'PAY_VOUCHER_DATE', 'name' => GetMessage('CRM_FIELD_PAY_VOUCHER_DATE'), 'type' => 'label', 'value' => !empty($arResult['ELEMENT']['PAY_VOUCHER_DATE']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arResult['ELEMENT']['PAY_VOUCHER_DATE']), 'SHORT', SITE_ID)) : '', 'visible' => $bStatusSuccess, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'PAY_VOUCHER_NUM', 'name' => GetMessage('CRM_FIELD_PAY_VOUCHER_NUM'), 'type' => 'label', 'value' => isset($arResult['ELEMENT']['PAY_VOUCHER_NUM']) ? $arResult['ELEMENT']['PAY_VOUCHER_NUM'] : '', 'visible' => $bStatusSuccess, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'REASON_MARKED_SUCCESS', 'name' => GetMessage('CRM_FIELD_REASON_MARKED_SUCCESS'), 'value' => isset($arResult['ELEMENT']['REASON_MARKED_SUCCESS']) ? $arResult['ELEMENT']['REASON_MARKED_SUCCESS'] : '', 'type' => 'label', 'visible' => $bStatusSuccess, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'DATE_MARKED', 'name' => GetMessage('CRM_FIELD_DATE_MARKED'), 'type' => 'label', 'value' => !empty($arResult['ELEMENT']['DATE_MARKED']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arResult['ELEMENT']['DATE_MARKED']), 'SHORT', SITE_ID)) : '', 'visible' => $bStatusFailed, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'REASON_MARKED', 'name' => GetMessage('CRM_FIELD_REASON_MARKED'), 'value' => isset($arResult['ELEMENT']['REASON_MARKED']) ? $arResult['ELEMENT']['REASON_MARKED'] : '', 'type' => 'label', 'visible' => $bStatusFailed, 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'DATE_BILL', 'name' => GetMessage('CRM_FIELD_DATE_BILL'), 'type' => 'label', 'value' => !empty($arResult['ELEMENT']['DATE_BILL']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arResult['ELEMENT']['DATE_BILL']), 'SHORT', SITE_ID)) : '', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'DATE_PAY_BEFORE', 'name' => GetMessage('CRM_FIELD_DATE_PAY_BEFORE'), 'type' => 'label', 'value' => !empty($arResult['ELEMENT']['DATE_PAY_BEFORE']) ? CCrmComponentHelper::TrimDateTimeString(ConvertTimeStamp(MakeTimeStamp($arResult['ELEMENT']['DATE_PAY_BEFORE']), 'SHORT', SITE_ID)) : '', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'RESPONSIBLE_ID', 'name' => GetMessage('CRM_FIELD_RESPONSIBLE_ID'), 'type' => 'custom', 'value' => isset($arResult['ELEMENT']['RESPONSIBLE_ID']) ? CCrmViewHelper::PrepareFormResponsible($arResult['ELEMENT']['RESPONSIBLE_ID'], $arParams['NAME_TEMPLATE'], $arParams['PATH_TO_USER_PROFILE']) : '', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'CURRENCY_ID', 'name' => GetMessage('CRM_FIELD_CURRENCY_ID'), 'params' => array('size' => 50), 'type' => 'label', 'value' => htmlspecialcharsbx(isset($arResult['CURRENCY_LIST'][$currencyID]) ? $arResult['CURRENCY_LIST'][$currencyID] : $currencyID), 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'UF_DEAL_ID', 'name' => GetMessage('CRM_FIELD_UF_DEAL_ID'), 'value' => isset($arResult['ELEMENT']['UF_DEAL_TITLE']) ? !CCrmDeal::CheckReadPermission($dealID) ? htmlspecialcharsbx($arResult['ELEMENT']['UF_DEAL_TITLE']) : '<a href="' . $arResult['PATH_TO_DEAL_SHOW'] . '" id="balloon_' . $arResult['GRID_ID'] . '_D_' . $dealID . '">' . htmlspecialcharsbx($arResult['ELEMENT']['UF_DEAL_TITLE']) . '</a>' . '<script type="text/javascript">BX.tooltip("DEAL_' . $dealID . '", "balloon_' . $arResult['GRID_ID'] . '_D_' . $dealID . '", "/bitrix/components/bitrix/crm.deal.show/card.ajax.php", "crm_balloon_deal", true);</script>' : GetMessage('CRM_INVOICE_DEAL_NOT_ASSIGNED'), 'type' => 'custom', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'UF_QUOTE_ID', 'name' => GetMessage('CRM_FIELD_UF_QUOTE_ID'), 'value' => isset($arResult['ELEMENT']['UF_QUOTE_TITLE']) ? !CCrmQuote::CheckReadPermission($quoteID) ? htmlspecialcharsbx($arResult['ELEMENT']['UF_QUOTE_TITLE']) : '<a href="' . $arResult['PATH_TO_QUOTE_SHOW'] . '" id="balloon_' . $arResult['GRID_ID'] . '_Q_' . $quoteID . '">' . htmlspecialcharsbx($arResult['ELEMENT']['UF_QUOTE_TITLE']) . '</a>' . '<script type="text/javascript">BX.tooltip("QUOTE_' . $quoteID . '", "balloon_' . $arResult['GRID_ID'] . '_Q_' . $quoteID . '", "/bitrix/components/bitrix/crm.quote.show/card.ajax.php", "crm_balloon_quote", true);</script>' : GetMessage('CRM_INVOICE_QUOTE_NOT_ASSIGNED'), 'type' => 'custom', 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'section_invoice_payer', 'name' => GetMessage('CRM_SECTION_INVOICE_PAYER'), 'type' => 'section', 'isTactile' => true); $clientField = array('id' => 'CLIENT_ID', 'name' => GetMessage('CRM_FIELD_CLIENT_ID'), 'value' => '', 'type' => 'custom', 'isTactile' => true); $contactHtml = ''; if ($contactID > 0) { $formattedName = isset($arResult['ELEMENT']['UF_CONTACT_FORMATTED_NAME']) ? htmlspecialcharsbx($arResult['ELEMENT']['UF_CONTACT_FORMATTED_NAME']) : ''; $contactHtml = $formattedName !== '' ? !CCrmContact::CheckReadPermission($contactID) ? $formattedName : '<a href="' . $arResult['PATH_TO_CONTACT_SHOW'] . '" id="balloon_' . $arResult['GRID_ID'] . '_C_' . $contactID . '">' . $formattedName . '</a>' . '<script type="text/javascript">BX.tooltip("CONTACT_' . $contactID . '", "balloon_' . $arResult['GRID_ID'] . '_C_' . $contactID . '", "' . SITE_DIR . 'bitrix/components/bitrix/crm.contact.show/card.ajax.php", "crm_balloon_contact", true);</script>' : ''; } if ($companyID > 0) { $title = isset($arResult['ELEMENT']['UF_COMPANY_TITLE']) ? htmlspecialcharsbx($arResult['ELEMENT']['UF_COMPANY_TITLE']) : ''; $clientField['value'] = $title !== '' ? !CCrmCompany::CheckReadPermission($companyID) ? $title : '<a href="' . $arResult['PATH_TO_COMPANY_SHOW'] . '" id="balloon_' . $arResult['GRID_ID'] . '_CO_' . $companyID . '">' . $title . '</a>' . '<script type="text/javascript">BX.tooltip("COMPANY_' . $companyID . '", "balloon_' . $arResult['GRID_ID'] . '_CO_' . $companyID . '", "' . SITE_DIR . 'bitrix/components/bitrix/crm.company.show/card.ajax.php", "crm_balloon_company", true);</script>' : GetMessage('CRM_INVOICE_CLIENT_NOT_ASSIGNED'); } elseif ($contactID > 0) { $clientField['value'] = $contactHtml !== '' ? $contactHtml : GetMessage('CRM_INVOICE_CLIENT_NOT_ASSIGNED'); } $arResult['FIELDS']['tab_1'][] =& $clientField; unset($clientField);