Exemplo n.º 1
0
 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 '';
     }
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
                 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');
Exemplo n.º 4
0
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"]);
Exemplo n.º 5
0
 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;
 }