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 ''; } }
protected function innerGetList($order, $filter, $select, $navigation, &$errors) { $ownerID = isset($filter['OWNER_ID']) ? intval($filter['OWNER_ID']) : 0; $ownerType = isset($filter['OWNER_TYPE']) ? $filter['OWNER_TYPE'] : ''; if ($ownerID <= 0 || $ownerType === '') { if ($ownerID <= 0) { $errors[] = 'The field OWNER_ID is required in filer.'; } if ($ownerType === '') { $errors[] = 'The field OWNER_TYPE is required in filer.'; } return false; } if ($ownerType === 'I') { //Crutch for Invoices if (!CCrmInvoice::CheckReadPermission($ownerID)) { $errors[] = 'Access denied.'; return false; } $result = array(); $productRows = CCrmInvoice::GetProductRows($ownerID); foreach ($productRows as $productRow) { $price = isset($productRow['PRICE']) ? $productRow['PRICE'] : 0.0; $discountSum = isset($productRow['DISCOUNT_PRICE']) ? $productRow['DISCOUNT_PRICE'] : 0.0; $taxRate = isset($productRow['VAT_RATE']) ? $productRow['VAT_RATE'] * 100 : 0.0; $exclusivePrice = CCrmProductRow::CalculateExclusivePrice($price, $taxRate); $discountRate = \Bitrix\Crm\Discount::calculateDiscountRate($exclusivePrice + $discountSum, $exclusivePrice); $result[] = array('ID' => $productRow['ID'], 'OWNER_ID' => $ownerID, 'OWNER_TYPE' => 'I', 'PRODUCT_ID' => isset($productRow['PRODUCT_ID']) ? $productRow['PRODUCT_ID'] : 0, 'PRODUCT_NAME' => isset($productRow['PRODUCT_NAME']) ? $productRow['PRODUCT_NAME'] : '', 'PRICE' => $price, 'QUANTITY' => isset($productRow['QUANTITY']) ? $productRow['QUANTITY'] : 0, 'DISCOUNT_TYPE_ID' => \Bitrix\Crm\Discount::MONETARY, 'DISCOUNT_RATE' => $discountRate, 'DISCOUNT_SUM' => $discountSum, 'TAX_RATE' => $taxRate, 'TAX_INCLUDED' => 'Y', 'MEASURE_CODE' => isset($productRow['MEASURE_CODE']) ? $productRow['MEASURE_CODE'] : '', 'MEASURE_NAME' => isset($productRow['MEASURE_NAME']) ? $productRow['MEASURE_NAME'] : '', 'CUSTOMIZED' => isset($productRow['CUSTOM_PRICE']) ? $productRow['CUSTOM_PRICE'] : 'N'); } return $result; } if (!CCrmAuthorizationHelper::CheckReadPermission(CCrmProductRow::ResolveOwnerTypeName($ownerType), $ownerID)) { $errors[] = 'Access denied.'; return false; } return CCrmProductRow::GetList($order, $filter, false, $navigation, $select, array('IS_EXTERNAL_CONTEXT' => true)); }
unset($errCode, $errMsg); } } $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), array('ORDER_TOPIC' => array('TYPE' => 'string'), 'STATUS_ID' => array('TYPE' => 'int'), 'DATE_INSERT' => array('TYPE' => 'datetime'), 'DATE_BILL' => array('TYPE' => 'date'), 'DATE_PAY_BEFORE' => array('TYPE' => 'date'), 'RESPONSIBLE_ID' => array('TYPE' => 'int'), 'COMMENTS' => array('TYPE' => 'string'), 'USER_DESCRIPTION' => array('TYPE' => 'string'), 'ACCOUNT_NUMBER' => array('TYPE' => 'string'), 'UF_QUOTE_ID' => array('TYPE' => 'int'), 'UF_DEAL_ID' => array('TYPE' => 'int'), 'UF_COMPANY_ID' => array('TYPE' => 'int'), 'UF_CONTACT_ID' => array('TYPE' => 'int'), 'PAY_VOUCHER_NUM' => array('TYPE' => 'string'), 'PAY_VOUCHER_DATE' => array('TYPE' => 'datetime'), 'REASON_MARKED' => array('TYPE' => 'string'), 'DATE_MARKED' => array('TYPE' => 'datetime'))); } else { if (isset($_POST['apply'])) { if (CCrmInvoice::CheckUpdatePermission($ID)) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_EDIT'], array('invoice_id' => $ID))); } } elseif (isset($_POST['saveAndAdd'])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_EDIT'], array('invoice_id' => 0))); } elseif (isset($_POST['saveAndView'])) { if (CCrmInvoice::CheckReadPermission($ID)) { LocalRedirect(empty($arResult['INVOICE_REFERER']) ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_SHOW'], array('invoice_id' => $ID)) : $arResult['INVOICE_REFERER']); } } // save LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_LIST'], array())); } } } elseif (isset($_GET['delete']) && check_bitrix_sessid()) { if ($bEdit) { $arResult['ERROR_MESSAGE'] = ''; if (!$CCrmInvoice->cPerms->CheckEnityAccess('INVOICE', 'DELETE', $arEntityAttr[$arParams['ELEMENT_ID']])) { $arResult['ERROR_MESSAGE'] .= GetMessage('CRM_PERMISSION_DENIED') . '<br />'; } if (empty($arResult['ERROR_MESSAGE']) && !$CCrmInvoice->Delete($arResult['ELEMENT']['ID'])) { $arResult['ERROR_MESSAGE'] = GetMessage('CRM_DELETE_ERROR');
Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); $mode = isset($_POST['MODE']) ? $_POST['MODE'] : ''; if ($mode === '') { __CrmInvoiceShowEndJsonResonse(array('ERROR' => 'MODE IS NOT DEFINED!')); } if ($mode === 'SAVE_PDF') { if (!CModule::IncludeModule('sale')) { __CrmInvoiceShowEndJsonResonse(array('ERROR' => 'MODULE SALE NOT INCLUDED!')); } if (isset($_POST['INVOICE_ID'])) { $invoice_id = $_POST['INVOICE_ID']; } else { __CrmInvoiceShowEndJsonResonse(array('ERROR' => 'INVOICE_ID NOT DEFINED!')); } $CCrmInvoice = new CCrmInvoice(); if ($CCrmInvoice->cPerms->HavePerm('INVOICE', BX_CRM_PERM_NONE, 'READ') || !CCrmInvoice::CheckReadPermission($invoice_id)) { __CrmInvoiceShowEndJsonResonse(array('ERROR' => 'PERMISSION DENIED!')); } $pdfContent = ''; $dbOrder = CSaleOrder::GetList(array("ID" => "DESC"), array("ID" => $invoice_id)); $arOrder = $dbOrder->GetNext(); if (!$arOrder) { __CrmInvoiceShowEndJsonResonse(array('ERROR' => 'COULD NOT FIND ORDER!')); } if (strlen($arOrder["SUM_PAID"]) > 0) { $arOrder["PRICE"] -= $arOrder["SUM_PAID"]; } $dbPaySysAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $arOrder["PAY_SYSTEM_ID"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"]), false, false, array("ACTION_FILE", "PARAMS", "ENCODING")); if ($arPaySysAction = $dbPaySysAction->Fetch()) { if (strlen($arPaySysAction["ACTION_FILE"]) > 0) { CSalePaySystemAction::InitParamArrays($arOrder, $ID, $arPaySysAction["PARAMS"]);
public static function get($params) { $ID = CCrmInvoiceRestUtil::getParamScalar($params, 'id', 0); if (!CCrmInvoice::CheckReadPermission($ID)) { throw new RestException('Access denied.'); } $arResult = self::getInvoiceDataByID($ID); $arResult = self::filterFields($arResult, 'get'); return $arResult; }