Ejemplo n.º 1
0
 public static function PrepareAccountingData($arFields)
 {
     $accountCurrencyID = CCrmCurrency::GetAccountCurrencyID();
     if (!isset($accountCurrencyID[0])) {
         return false;
     }
     $currencyID = isset($arFields['CURRENCY_ID']) ? strval($arFields['CURRENCY_ID']) : '';
     if (!CCrmCurrency::GetByID($currencyID)) {
         // Currency is invalid or not assigned
         return false;
     }
     if ($currencyID === $accountCurrencyID) {
         // Avoid conversion to float since possible data lost
         return array('ACCOUNT_CURRENCY_ID' => $accountCurrencyID, 'ACCOUNT_SUM' => isset($arFields['SUM']) ? $arFields['SUM'] : 0.0);
     }
     $account = CCrmCurrency::ConvertMoney(isset($arFields['SUM']) ? doubleval($arFields['SUM']) : 0.0, $currencyID, $accountCurrencyID, isset($arFields['EXCH_RATE']) ? doubleval($arFields['EXCH_RATE']) : -1);
     return array('ACCOUNT_CURRENCY_ID' => $accountCurrencyID, 'ACCOUNT_SUM' => $account);
 }
Ejemplo n.º 2
0
         // 2. Try to interpret value as TITLE. If not found leave value as is
         $result = array_search($data, $arStatus['STATUS_LIST']);
         $arLead[$currentKey] = $result !== false ? $result : $data;
     }
 } elseif ($currentKey == 'SOURCE_ID') {
     if (isset($arStatus['SOURCE_LIST'][$data])) {
         // 1. Try to interpret value as ID
         $arLead[$currentKey] = $data;
     } else {
         $result = array_search($data, $arStatus['SOURCE_LIST']);
         $arLead[$currentKey] = $result !== false ? $result : $data;
     }
 } elseif ($currentKey == 'CURRENCY_ID') {
     $currency = CCrmCurrency::GetByName($data);
     if (!$currency) {
         $currency = CCrmCurrency::GetByID($data);
     }
     $arLead[$currentKey] = $currency ? $currency['CURRENCY'] : CCrmCurrency::GetBaseCurrencyID();
 } elseif ($currentKey == 'PRODUCT_ID') {
     // For compatibility
     $arProduct = CCrmProduct::GetByOriginID('CRM_PROD_' . $data);
     if (is_array($arProduct)) {
         $arProductRow = array('PRODUCT_ID' => $arProduct['ID'], 'QUANTITY' => 1);
         // PRICE equals to OPPORTUNITY. We will set PRICE latter
     } else {
         $arProduct = CCrmProduct::GetByName($data);
         if ($arProduct) {
             $arProductRow['PRODUCT_ID'] = $arProduct['ID'];
         } else {
             $arProductRow['PRODUCT_ID'] = 0;
         }
Ejemplo n.º 3
0
            }
        }
        if ($result) {
            if ($currency['IS_ACCOUNTING_CURRENCY'] && $currencyID !== CCrmCurrency::GetAccountCurrencyID()) {
                CCrmCurrency::SetAccountCurrencyID($currencyID);
            } elseif (!$currency['IS_ACCOUNTING_CURRENCY'] && $currencyID === CCrmCurrency::GetAccountCurrencyID()) {
                CCrmCurrency::SetAccountCurrencyID(CCrmCurrency::GetBaseCurrencyID());
            }
            if ($currency['IS_INVOICE_CURRENCY'] && $currencyID !== CCrmCurrency::getInvoiceDefault()) {
                CCrmCurrency::setInvoiceDefault($currencyID);
            }
            LocalRedirect(isset($_POST['apply']) ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_EDIT'], array('currency_id' => $currencyID)) : CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array('currency_id' => $currencyID)));
        }
    } elseif ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['delete'])) {
        $currencyID = isset($arParams['CURRENCY_ID']) ? strval($arParams['CURRENCY_ID']) : '';
        $currency = isset($currencyID[0]) ? CCrmCurrency::GetByID($currencyID) : null;
        if ($currency) {
            if (!CCrmCurrency::Delete($currencyID)) {
                $err = CCrmCurrency::GetLastError();
                ShowError(isset($err[0]) ? $err : GetMessage('CRM_CURRENCY_DELETE_UNKNOWN_ERROR'));
                return;
            }
        }
        LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array()));
    }
}
$arResult['FIELDS'] = array();
$arResult['FIELDS']['tab_1'][] = array('id' => 'currency_info', 'name' => GetMessage('CRM_CURRENCY_SECTION_MAIN'), 'type' => 'section');
$arResult['FIELDS']['tab_1'][] = array('id' => 'ID', 'name' => GetMessage('CRM_CURRENCY_FIELD_ID'), 'params' => array('size' => 10), 'value' => $currencyID, 'type' => $isEditMode ? 'label' : 'text');
$arResult['FIELDS']['tab_1'][] = array('id' => 'AMOUNT_CNT', 'name' => GetMessage('CRM_CURRENCY_FIELD_AMOUNT_CNT'), 'params' => array('size' => 10), 'value' => isset($currency['AMOUNT_CNT']) ? $currency['AMOUNT_CNT'] : '1', 'type' => $isBaseCurrency ? 'label' : 'text');
$arResult['FIELDS']['tab_1'][] = array('id' => 'DEFAULT_EXCH_RATE', 'name' => GetMessage('CRM_CURRENCY_FIELD_DEFAULT_EXCH_RATE'), 'params' => array('size' => 10), 'value' => isset($currency['AMOUNT']) ? $currency['AMOUNT'] : '1', 'type' => $isBaseCurrency ? 'label' : 'text');
Ejemplo n.º 4
0
 protected static function getCurrencyName($ID, $htmlEncode = false)
 {
     $currency = CCrmCurrency::GetByID($ID);
     if ($currency) {
         return $currency['FULL_NAME'];
     }
     // Old style (for compatibility only)
     $statuses = CCrmStatus::GetStatus('CURRENCY');
     $name = array_key_exists($ID, $statuses) ? $statuses[$ID]['NAME'] : $ID;
     return $htmlEncode ? htmlspecialcharsbx($name) : $name;
 }
Ejemplo n.º 5
0
$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)));
    return;
}
$arResult['CURRENCY_FORMAT'] = CCrmCurrency::GetCurrencyFormatString($currencyID);
//$exchRate = $arResult['EXCH_RATE'] = isset($arParams['EXCH_RATE']) ? (double)$arParams['EXCH_RATE'] : 1.0;
//$arResult['CURRENCY_DISPLAY_NAME'] = $currency['ID']; //ID is ISO 4217
// Prepare source data
if (isset($arParams['PRODUCT_ROWS']) && is_array($arParams['PRODUCT_ROWS'])) {
    $arResult['PRODUCT_ROWS'] = $arParams['PRODUCT_ROWS'];
    foreach ($arResult['PRODUCT_ROWS'] as &$arProdRow) {
        $productID = intval($arProdRow['PRODUCT_ID']);
        if (isset($arProdRow['PRODUCT_NAME'])) {
            continue;
        }
Ejemplo n.º 6
0
} elseif (preg_match('/(.*)\\[(\\d+?)\\]/i' . BX_UTF_PCRE_MODIFIER, $search, $arMatches)) {
    $arFilter['ID'] = intval($arMatches[2]);
    $arFilter['%NAME'] = trim($arMatches[1]);
    $arFilter['LOGIC'] = 'OR';
    $arFilter['ACTIVE'] = 'Y';
    /*$arFilter['__INNER_FILTER'] = array(
    		'LOGIC' => 'OR',
    		'ID' => intval($arMatches[2]),
    		'%NAME' =>  trim($arMatches[1])
    	);*/
} else {
    $arFilter['ACTIVE'] = 'Y';
    $arFilter['%NAME'] = $search;
}
$dstCurrencyID = isset($_REQUEST['CURRENCY_ID']) ? trim($_REQUEST['CURRENCY_ID']) : '';
$dstCurrency = strlen($dstCurrencyID) > 0 ? CCrmCurrency::GetByID($dstCurrencyID) : CCrmCurrency::GetBaseCurrency();
// Default currency exchange rates are used
//$dstExchRate = isset($_REQUEST['EXCH_RATE']) ? (double)$_REQUEST['EXCH_RATE'] : 0;
//if($dstExchRate == 0)
//{
//	$dstExchRate = is_array($dstCurrency) ? $dstCurrency['EXCH_RATE'] : 1.0;
//}
$enableRawPrices = isset($_REQUEST['ENABLE_RAW_PRICES']) && strtoupper($_REQUEST['ENABLE_RAW_PRICES']) === 'Y';
$limit = isset($_REQUEST['LIMIT']) ? intval($_REQUEST['LIMIT']) : 0;
/*$arNavStartParams = false;

if ($limit > 0)
	$arNavStartParams = array('nTopCount' => $limit);*/
$arSelect = array('ID', 'NAME', 'PRICE', 'CURRENCY_ID');
$arPricesSelect = $arVatsSelect = array();
$arSelect = CCrmProduct::DistributeProductSelect($arSelect, $arPricesSelect, $arVatsSelect);
Ejemplo n.º 7
0
 protected function innerGet($ID, &$errors)
 {
     if (!CCrmCurrency::CheckReadPermission($ID)) {
         $errors[] = 'Access denied.';
         return false;
     }
     $result = CCrmCurrency::GetByID($ID);
     if (is_array($result)) {
         return $result;
     }
     $errors[] = 'Not found';
     return false;
 }
Ejemplo n.º 8
0
    return;
}
global $USER, $APPLICATION;
$arParams['PATH_TO_CURRENCY_LIST'] = CrmCheckPath('PATH_TO_CURRENCY_LIST', $arParams['PATH_TO_CURRENCY_LIST'], '');
$arParams['PATH_TO_CURRENCY_SHOW'] = CrmCheckPath('PATH_TO_CURRENCY_SHOW', $arParams['PATH_TO_CURRENCY_SHOW'], '?currency_id=#currency_id#&show');
$arParams['PATH_TO_CURRENCY_ADD'] = CrmCheckPath('PATH_TO_CURRENCY_ADD', $arParams['PATH_TO_CURRENCY_ADD'], '?add');
$arParams['PATH_TO_CURRENCY_EDIT'] = CrmCheckPath('PATH_TO_CURRENCY_EDIT', $arParams['PATH_TO_CURRENCY_EDIT'], '?currency_id=#currency_id#&edit');
if (!isset($arParams['TYPE'])) {
    $arParams['TYPE'] = 'list';
}
$arResult['BUTTONS'] = array();
$currencyID = isset($arParams['CURRENCY_ID']) ? strval($arParams['CURRENCY_ID']) : '';
$CrmPerms = new CCrmPerms($USER->GetID());
$currencyAdd = $currencyEdit = $currencyDelete = $CrmPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'WRITE');
$currencyShow = $CrmPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'READ');
$exists = isset($currencyID[0]) && is_array(CCrmCurrency::GetByID($currencyID));
if ($arParams['TYPE'] !== 'list') {
    $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_CURRENCY_LIST'), 'TITLE' => GetMessage('CRM_CURRENCY_LIST_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array()), 'ICON' => 'btn-list');
}
if ($currencyAdd) {
    $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_CURRENCY_ADD'), 'TITLE' => GetMessage('CRM_CURRENCY_ADD_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_ADD'], array()), 'ICON' => 'btn-new');
}
if ($currencyEdit && $arParams['TYPE'] == 'show' && $exists) {
    $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_CURRENCY_EDIT'), 'TITLE' => GetMessage('CRM_CURRENCY_EDIT_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_EDIT'], array('currency_id' => $currencyID)), 'ICON' => 'btn-edit');
}
if ($currencyShow && $arParams['TYPE'] == 'edit' && $exists) {
    $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_CURRENCY_SHOW'), 'TITLE' => GetMessage('CRM_CURRENCY_SHOW_TITLE'), 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_SHOW'], array('currency_id' => $currencyID)), 'ICON' => 'btn-view');
}
if ($currencyDelete && ($arParams['TYPE'] == 'edit' || $arParams['TYPE'] == 'show') && $exists) {
    $arResult['BUTTONS'][] = array('TEXT' => GetMessage('CRM_CURRENCY_DELETE'), 'TITLE' => GetMessage('CRM_CURRENCY_DELETE_TITLE'), 'LINK' => "javascript:currency_delete('" . GetMessage('CRM_CURRENCY_DELETE_DLG_TITLE') . "', '" . GetMessage('CRM_CURRENCY_DELETE_DLG_MESSAGE') . "', '" . GetMessage('CRM_CURRENCY_DELETE_DLG_BTNTITLE') . "', '" . CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_EDIT'], array('currency_id' => $currencyID)), array('delete' => '', 'sessid' => bitrix_sessid())) . "')", 'ICON' => 'btn-delete');
}
Ejemplo n.º 9
0
$CrmPerms = new CCrmPerms($USER->GetID());
if (!$CrmPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'READ')) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
$baseCurrencyID = CCrmCurrency::GetBaseCurrencyID();
$currencyID = isset($arParams['CURRENCY_ID']) ? strval($arParams['CURRENCY_ID']) : '';
if (!isset($currencyID[0])) {
    $currencyIDParName = isset($arParams['CURRENCY_ID_PAR_NAME']) ? strval($arParams['CURRENCY_ID_PAR_NAME']) : '';
    if (strlen($currencyIDParName) == 0) {
        $currencyIDParName = 'currency_id';
    }
    $currencyID = isset($_REQUEST[$currencyIDParName]) ? strval($_REQUEST[$currencyIDParName]) : '';
}
$currency = array();
if (!isset($currencyID[0]) || !($currency = CCrmCurrency::GetByID($currencyID))) {
    ShowError(GetMessage('CRM_CURRENCY_NOT_FOUND'));
    @define('ERROR_404', 'Y');
    if ($arParams['SET_STATUS_404'] === 'Y') {
        CHTTP::SetStatus("404 Not Found");
    }
    return;
}
$currencyID = $currency['CURRENCY'];
$isBaseCurrency = $currencyID === $baseCurrencyID;
$arResult['CURRENCY_ID'] = $currencyID;
$arResult['CURRENCY'] = $currency;
$isEditMode = isset($currencyID[0]);
$arResult['FORM_ID'] = 'CRM_CURRENCY_EDIT';
$arResult['GRID_ID'] = 'CRM_CURRENCY_EDIT';
$arResult['BACK_URL'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CURRENCY_LIST'], array());