コード例 #1
0
 function CCrmProductResult($res, $arFields = array(), $arAdditionalFilter = array(), $arAdditionalSelect = array(), $arOptions = array())
 {
     parent::CDBResult($res);
     $fields = $arFields;
     foreach ($fields as $k => $v) {
         $str = strval($v);
         if (trim($str) === '') {
             unset($fields[$k]);
         }
     }
     $this->arFieldAssoc = array_flip($fields);
     $this->arAdditionalFilter = $arAdditionalFilter;
     $this->arAdditionalSelect = $arAdditionalSelect;
     $this->bRealPrice = false;
     if (is_array($arOptions) && count($arOptions) > 0) {
         if (isset($arOptions['REAL_PRICE']) && $arOptions['REAL_PRICE'] === true) {
             $this->bRealPrice = true;
         }
     }
     self::$bVatMode = CCrmTax::isVatMode();
     if (self::$bVatMode) {
         self::$arVatRates = CCrmVat::GetAll();
     }
 }
コード例 #2
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
        $arResult['TITLE'] = '';
        $arResult['CURRENCY_ID'] = CCrmCurrency::GetBaseCurrencyID();
        $arResult['SUM'] = 0.0;
        $arResult['TAX_SUM'] = 0.0;
    }
    $rows = CCrmInvoice::GetProductRows($entityID);
    foreach ($rows as &$row) {
        $item = array('PRODUCT_NAME' => isset($row['PRODUCT_NAME']) ? $row['PRODUCT_NAME'] : '', 'PRICE' => isset($row['PRICE']) ? round(doubleval($row['PRICE']), 2) : 0.0, 'VAT_RATE' => isset($row['VAT_RATE']) ? round(doubleval($row['VAT_RATE']) * 100, 2) : 0.0, 'QUANTITY' => isset($row['QUANTITY']) ? intval($row['QUANTITY']) : 0);
        $item['FORMATTED_PRICE'] = CCrmCurrency::MoneyToString($item['PRICE'], $arResult['CURRENCY_ID']);
        $arResult['ITEMS'][] =& $item;
        unset($item);
    }
    unset($row);
    // VAT - VAT ONLY
    // EXT - EXTENDED MODE WITH CUSTOM TAXES
    $arResult['TAX_MODE'] = CCrmTax::isVatMode() ? 'VAT' : 'EXT';
    if ($arResult['TAX_MODE'] === 'VAT') {
        $arResult['VAT_SUM'] = isset($arResult['TAX_SUM']) ? $arResult['TAX_SUM'] : 0.0;
        $arResult['FORMATTED_VAT_SUM'] = CCrmCurrency::MoneyToString($arResult['VAT_SUM'], $arResult['CURRENCY_ID']);
        $arResult['FORMATTED_SUM_BRUTTO'] = CCrmCurrency::MoneyToString($arResult['SUM'], $arResult['CURRENCY_ID']);
    } else {
        $arResult['TAX_LIST'] = CCrmInvoice::getTaxList($entityID);
        foreach ($arResult['TAX_LIST'] as &$taxInfo) {
            $taxInfo['FORMATTED_SUM'] = CCrmCurrency::MoneyToString($taxInfo['VALUE_MONEY'], $arResult['CURRENCY_ID']);
        }
        unset($taxInfo);
        $arResult['TAX_LIST_PERCENT_PRECISION'] = SALE_VALUE_PRECISION;
    }
    $arResult['FORMATTED_SUM_BRUTTO'] = CCrmCurrency::MoneyToString($arResult['SUM'], $arResult['CURRENCY_ID']);
    $arResult['FORMATTED_SUM_NETTO'] = CCrmCurrency::MoneyToString($arResult['SUM'] - $arResult['TAX_SUM'], $arResult['CURRENCY_ID']);
} else {
コード例 #3
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
    die;
}
if (!CModule::IncludeModule('crm')) {
    ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED'));
    return;
}
global $USER, $APPLICATION;
$CrmPerms = new CCrmPerms($USER->GetID());
if (!$CrmPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'READ')) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
$arParams['PATH_TO_PRODUCT_LIST'] = CrmCheckPath('PATH_TO_PRODUCT_LIST', $arParams['PATH_TO_PRODUCT_LIST'], '');
$arParams['PATH_TO_PRODUCT_FILE'] = CrmCheckPath('PATH_TO_PRODUCT_FILE', $arParams['PATH_TO_PRODUCT_FILE'], $APPLICATION->GetCurPage() . '?product_id=#product_id#&field_id=#field_id#&file_id=#file_id#&file');
//CUtil::InitJSCore(array('ajax', 'tooltip'));
$bVatMode = CCrmTax::isVatMode();
$vatRateListItems = array();
if ($bVatMode) {
    $vatRateListItems = CCrmVat::GetVatRatesListItems();
}
// measure list items
$measureListItems = array('' => GetMessage('CRM_MEASURE_NOT_SELECTED'));
$measures = \Bitrix\Crm\Measure::getMeasures(100);
if (is_array($measures)) {
    foreach ($measures as $measure) {
        $measureListItems[$measure['ID']] = $measure['SYMBOL'];
    }
    unset($measure);
}
unset($measures);
$productID = isset($arParams['PRODUCT_ID']) ? intval($arParams['PRODUCT_ID']) : 0;
コード例 #4
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!CModule::IncludeModule('crm')) {
    return;
}
if (!CModule::IncludeModule('sale')) {
    return;
}
global $USER;
$CCrmPerms = new CCrmPerms($USER->GetID());
if ($CCrmPerms->HavePerm('CONFIG', BX_CRM_PERM_NONE, 'WRITE')) {
    return;
}
CUtil::InitJSCore();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (check_bitrix_sessid()) {
        $arResult['BACK_URL'] = isset($_POST['BACK_URL']) ? $_POST['BACK_URL'] : '';
        $arResult['TAX_TYPE'] = isset($_POST['TAX_TYPE']) ? $_POST['TAX_TYPE'] : '';
        if (strlen($arResult['TAX_TYPE']) > 0) {
            if ($arResult['TAX_TYPE'] == 'tax') {
                CCrmTax::unSetVatMode();
            } elseif ($arResult['TAX_TYPE'] == 'vat') {
                CCrmTax::setVatMode();
            }
        }
    }
} else {
    $arResult['IS_VAT_MODE'] = CCrmTax::isVatMode();
}
$this->IncludeComponentTemplate();
コード例 #5
0
ファイル: crm_product.php プロジェクト: DarneoStudio/bitrix
 public static function RecalculatePriceVat($price, $bVatIncluded, $vatId)
 {
     $result = $price;
     if (self::$bVatMode === null) {
         self::$bVatMode = CCrmTax::isVatMode();
         if (self::$bVatMode) {
             self::$arVatRates = CCrmVat::GetAll();
         }
     }
     if (self::$bVatMode) {
         if ($bVatIncluded !== 'Y') {
             if (isset(self::$arVatRates[$vatId])) {
                 $vatRate = self::$arVatRates[$vatId]['RATE'];
                 $result = (doubleval($vatRate) / 100 + 1) * doubleval($price);
             }
         }
     }
     return $result;
 }
コード例 #6
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
// Check permissions (READ by default)
$permissionType = isset($arParams['PERMISSION_TYPE']) ? (string) $arParams['PERMISSION_TYPE'] : 'READ';
$perms = new CCrmPerms($USER->GetID());
if ($perms->HavePerm($ownerName, BX_CRM_PERM_NONE, $permissionType)) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
/** @var \CBitrixComponent $this */
$arResult['COMPONENT_ID'] = $this->randString();
$arResult['OWNER_TYPE'] = $ownerType;
$arResult['OWNER_ID'] = $ownerID;
$arResult['READ_ONLY'] = $permissionType == 'READ';
$arResult['INIT_EDITABLE'] = isset($arParams['INIT_EDITABLE']) ? $arParams['INIT_EDITABLE'] === 'Y' : false;
$arResult['HIDE_MODE_BUTTON'] = isset($arParams['HIDE_MODE_BUTTON']) ? $arParams['HIDE_MODE_BUTTON'] === 'Y' : false;
$arResult['HIDE_ALL_TAXES'] = isset($arParams['HIDE_ALL_TAXES']) ? $arParams['HIDE_ALL_TAXES'] === 'Y' : false;
$arResult['ALLOW_TAX'] = isset($arParams['ALLOW_TAX']) ? $arParams['ALLOW_TAX'] === 'Y' : CCrmTax::isVatMode();
$arResult['ALLOW_TAX'] = $arResult['ALLOW_TAX'] && !$arResult['HIDE_ALL_TAXES'];
$arResult['ALLOW_LD_TAX'] = isset($arParams['ALLOW_LD_TAX']) ? $arParams['ALLOW_LD_TAX'] === 'Y' : CCrmTax::isTaxMode();
$arResult['ALLOW_LD_TAX'] = $arResult['ALLOW_LD_TAX'] || $arResult['HIDE_ALL_TAXES'];
$arResult['LOCATION_ID'] = isset($arParams['LOCATION_ID']) ? $arParams['LOCATION_ID'] : '';
$arResult['PRODUCT_ROW_TAX_UNIFORM'] = COption::GetOptionString('crm', 'product_row_tax_uniform', 'Y') === 'Y';
$arResult['INVOICE_MODE'] = $ownerType === 'I';
$arResult['HIDE_TAX_INCLUDED_COLUMN'] = $arResult['INVOICE_MODE'];
$arResult['CATALOG_TYPE_ID'] = CCrmCatalog::GetCatalogTypeID();
// copy flag
$bCopy = $arParams['COPY_FLAG'] === 'Y' ? true : false;
// Check currency (national currency by default)
$currencyID = $arResult['CURRENCY_ID'] = isset($arParams['CURRENCY_ID']) ? (string) $arParams['CURRENCY_ID'] : CCrmCurrency::GetBaseCurrencyID();
$currency = CCrmCurrency::GetByID($currencyID);
if (!$currency) {
    ShowError(GetMessage('CRM_CURRENCY_IS_NOT_FOUND', array('#CURRENCY_ID#' => $currencyID)));
コード例 #7
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
// CONTEXT_ID -->
$contextID = isset($arParams['CONTEXT_ID']) ? $arParams['CONTEXT_ID'] : '';
if ($contextID === '' && isset($_REQUEST['context_id'])) {
    $contextID = $_REQUEST['context_id'];
}
if ($contextID === '') {
    $contextID = "{$uid}_{$entityID}";
}
$arResult['CONTEXT_ID'] = $arParams['CONTEXT_ID'] = $contextID;
//<-- CONTEXT_ID
$arResult['STATUS_LIST'] = CCrmStatus::GetStatus('INVOICE_STATUS');
$personTypes = $arResult['PERSON_TYPES'] = CCrmPaySystem::getPersonTypeIDs();
// '' - NO TAXES
// 'VAT' - VAT ONLY
// 'EXT' - EXTENDED MODE WITH CUSTOM TAXES
$taxMode = $arResult['TAX_MODE'] = CCrmTax::isVatMode() ? 'VAT' : (CCrmTax::isTaxMode() ? 'EXT' : '');
$companyID = 0;
$contactID = 0;
$dealID = 0;
$dealCurrencyID = '';
$personTypeID = 0;
$paySystemID = 0;
$properties = array();
$currencyID = CCrmInvoice::GetCurrencyID();
$arFields = null;
if ($entityID === 0) {
    $arResult['MODE'] = 'CREATE';
    $now = time() + CTimeZone::GetOffset();
    $nowDate = ConvertTimeStamp($now, 'SHORT', SITE_ID);
    $arFields = array('~CURRENCY' => $currencyID, 'CURRENCY' => htmlspecialcharsbx($currencyID));
    $arFields['~STATUS_ID'] = !empty($arResult['STATUS_LIST']) ? array_shift(array_keys($arResult['STATUS_LIST'])) : '';
コード例 #8
0
 public static function LoadTotalInfo($ownerType, $ownerID)
 {
     $result = array();
     $settings = CCrmProductRow::LoadSettings($ownerType, $ownerID);
     $taxMode = isset($settings['TAX_MODE']) ? intval($settings['TAX_MODE']) : 0;
     if ($taxMode !== self::TAX_MODE && $taxMode !== self::LD_TAX_MODE) {
         $taxMode = CCrmTax::isVatMode() ? self::TAX_MODE : self::LD_TAX_MODE;
     }
     $result['TAX_MODE'] = $taxMode;
     if (is_array($settings['TAX_LIST'])) {
         $result['TAX_LIST'] = $settings['TAX_LIST'];
     }
     return $result;
 }
コード例 #9
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
$arParams['PATH_TO_PRODUCT_LIST'] = CrmCheckPath('PATH_TO_PRODUCT_LIST', $arParams['PATH_TO_PRODUCT_LIST'], $APPLICATION->GetCurPage() . '?section_id=#section_id#');
$arParams['PATH_TO_PRODUCT_SHOW'] = CrmCheckPath('PATH_TO_PRODUCT_SHOW', $arParams['PATH_TO_PRODUCT_SHOW'], $APPLICATION->GetCurPage() . '?product_id=#product_id#&show');
$arParams['PATH_TO_PRODUCT_EDIT'] = CrmCheckPath('PATH_TO_PRODUCT_EDIT', $arParams['PATH_TO_PRODUCT_EDIT'], $APPLICATION->GetCurPage() . '?product_id=#product_id#&edit');
$arParams['PATH_TO_PRODUCT_FILE'] = CrmCheckPath('PATH_TO_PRODUCT_FILE', $arParams['PATH_TO_PRODUCT_FILE'], $APPLICATION->GetCurPage() . '?product_id=#product_id#&field_id=#field_id#&file_id=#file_id#&file');
// prepare URI template
$curParam = $APPLICATION->GetCurParam();
$curParam = preg_replace('/(^|[^\\w])bxajaxid=[\\d\\w]*([^\\d\\w]|$)/', '', $curParam);
$curParam = preg_replace('/(?<!\\w)list_section_id=\\d*(?=([^\\d]|$))/', 'list_section_id=#section_id#', $curParam);
$curParam = preg_replace('/(^|&)tree=\\w*(?=(&|$))/', '', $curParam);
$arResult['PAGE_URI_TEMPLATE'] = $arParams['PATH_TO_PRODUCT_LIST'] . (strlen($curParam) > 0 ? '?' . $curParam . '&tree=Y' : '?tree=Y');
unset($curParam);
$arFilter = $arSort = array();
$bInternal = false;
$arResult['FORM_ID'] = isset($arParams['FORM_ID']) ? $arParams['FORM_ID'] : '';
$arResult['TAB_ID'] = isset($arParams['TAB_ID']) ? $arParams['TAB_ID'] : '';
$bVatMode = $arResult['VAT_MODE'] = CCrmTax::isVatMode();
$arResult['VAT_RATE_LIST_ITEMS'] = array();
if ($bVatMode) {
    $arResult['VAT_RATE_LIST_ITEMS'] = CCrmVat::GetVatRatesListItems();
}
// measure list items
$arResult['MEASURE_LIST_ITEMS'] = array('' => GetMessage('CRM_MEASURE_NOT_SELECTED'));
$measures = \Bitrix\Crm\Measure::getMeasures(100);
if (is_array($measures)) {
    foreach ($measures as $measure) {
        $arResult['MEASURE_LIST_ITEMS'][$measure['ID']] = $measure['SYMBOL'];
    }
    unset($measure);
}
unset($measures);
if (isset($arResult['PRODUCT_ID'])) {
コード例 #10
0
ファイル: ajax.php プロジェクト: mrdeadmouse/u136006
 //<-- COMMENTS & USER_DESCRIPTION
 $responsibleID = max(isset($data['RESPONSIBLE_ID']) ? intval($data['RESPONSIBLE_ID']) : 0, 0);
 if ($responsibleID == 0) {
     $responsibleID = CCrmSecurityHelper::GetCurrentUserID();
 }
 $arFields = array('ID' => $ID, 'ORDER_TOPIC' => $topic, 'STATUS_ID' => $statusID, 'CURRENCY' => $currencyID, 'PAY_SYSTEM_ID' => $resolvedPaySystemID, 'PERSON_TYPE_ID' => $resolvedPersonTypeID, 'RESPONSIBLE_ID' => $responsibleID, 'UF_DEAL_ID' => $dealID, 'UF_COMPANY_ID' => $companyID, 'UF_CONTACT_ID' => $contactID, 'COMMENTS' => $comments, 'USER_DESCRIPTION' => $userDescription, 'PRODUCT_ROWS' => $productRows);
 // DATE_INSERT & DATE_BILL & DATE_PAY_BEFORE -->
 $arFields['DATE_INSERT'] = ConvertTimeStamp($now, 'SHORT', SITE_ID);
 $ts = isset($data['DATE_BILL']) ? intval($data['DATE_BILL']) : 0;
 $arFields['DATE_BILL'] = ConvertTimeStamp($ts > 0 ? $ts : $now, 'SHORT', SITE_ID);
 $ts = isset($data['DATE_PAY_BEFORE']) ? intval($data['DATE_PAY_BEFORE']) : 0;
 if ($ts > 0) {
     $arFields['DATE_PAY_BEFORE'] = ConvertTimeStamp($ts, 'SHORT', SITE_ID);
 }
 //<-- DATE_INSERT & DATE_BILL & DATE_PAY_BEFORE
 $taxMode = CCrmTax::isVatMode() ? 'VAT' : (CCrmTax::isTaxMode() ? 'EXT' : '');
 if ($taxMode === 'EXT') {
     $arFields['PR_LOCATION'] = isset($data['LOCATION_ID']) ? intval($data['LOCATION_ID']) : 0;
 }
 $isSuccessfull = CCrmStatusInvoice::isStatusSuccess($statusID);
 $isFailed = !$isSuccessfull && CCrmStatusInvoice::isStatusFailed($statusID);
 if ($isSuccessfull) {
     $timestamp = isset($data['PAYMENT_TIME_STAMP']) ? max(intval($data['PAYMENT_TIME_STAMP']), 0) : 0;
     $arFields['PAY_VOUCHER_DATE'] = $timestamp > 0 ? ConvertTimeStamp($timestamp, 'SHORT', SITE_ID) : null;
     $arFields['PAY_VOUCHER_NUM'] = isset($data['PAYMENT_DOC']) ? substr(trim($data['PAYMENT_DOC']), 0, 20) : '';
     $arFields['REASON_MARKED'] = isset($data['PAYMENT_COMMENT']) ? substr(trim($data['PAYMENT_COMMENT']), 0, 255) : '';
 } elseif ($isFailed) {
     $timestamp = isset($data['CANCEL_TIME_STAMP']) ? max(intval($data['CANCEL_TIME_STAMP']), 0) : 0;
     $arFields['DATE_MARKED'] = $timestamp > 0 ? ConvertTimeStamp($timestamp, 'SHORT', SITE_ID) : null;
     $arFields['REASON_MARKED'] = isset($data['CANCEL_REASON']) ? substr(trim($data['CANCEL_REASON']), 0, 255) : '';
 }