public static function PrepareCurrency4Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter) { $val = DoubleVal($val); $baseSiteCurrency = ""; if (isset($arFilter["LID"]) && strlen($arFilter["LID"]) > 0) $baseSiteCurrency = CSaleLang::GetLangCurrency($arFilter["LID"]); elseif (isset($arFilter["CURRENCY"]) && strlen($arFilter["CURRENCY"]) > 0) $baseSiteCurrency = $arFilter["CURRENCY"]; if (strlen($baseSiteCurrency) <= 0) return False; $strSqlSearch = ""; $dbCurrency = CCurrency::GetList(($by = "sort"), ($order = "asc")); while ($arCurrency = $dbCurrency->Fetch()) { $val1 = roundEx(CCurrencyRates::ConvertCurrency($val, $baseSiteCurrency, $arCurrency["CURRENCY"]), SALE_VALUE_PRECISION); if (strlen($strSqlSearch) > 0) $strSqlSearch .= " OR "; $strSqlSearch .= "(D.ORDER_CURRENCY = '".$arCurrency["CURRENCY"]."' AND "; if ($negative == "Y") $strSqlSearch .= "NOT"; $strSqlSearch .= "(".$field." ".$operation." ".$val1." OR ".$field." IS NULL OR ".$field." = 0)"; $strSqlSearch .= ")"; } return "(".$strSqlSearch.")"; }
function CheckFields($ACTION, &$arFields, $ID = 0) { global $APPLICATION; if ((is_set($arFields, "PRODUCT_ID") || $ACTION == "ADD") && intval($arFields["PRODUCT_ID"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("KGP_EMPTY_PRODUCT"), "EMPTY_PRODUCT_ID"); return false; } if ((is_set($arFields, "CATALOG_GROUP_ID") || $ACTION == "ADD") && intval($arFields["CATALOG_GROUP_ID"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("KGP_EMPTY_CATALOG_GROUP"), "EMPTY_CATALOG_GROUP_ID"); return false; } if ((is_set($arFields, "CURRENCY") || $ACTION == "ADD") && strlen($arFields["CURRENCY"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("KGP_EMPTY_CURRENCY"), "EMPTY_CURRENCY"); return false; } if (isset($arFields['CURRENCY'])) { if (!($arCurrency = CCurrency::GetByID($arFields["CURRENCY"]))) { $APPLICATION->ThrowException(Loc::getMessage("KGP_NO_CURRENCY", array('#ID#' => $arFields["CURRENCY"])), "CURRENCY"); return false; } } if (is_set($arFields, "PRICE") || $ACTION == "ADD") { $arFields["PRICE"] = str_replace(",", ".", $arFields["PRICE"]); $arFields["PRICE"] = DoubleVal($arFields["PRICE"]); } if ((is_set($arFields, "QUANTITY_FROM") || $ACTION == "ADD") && intval($arFields["QUANTITY_FROM"]) <= 0) { $arFields["QUANTITY_FROM"] = false; } if ((is_set($arFields, "QUANTITY_TO") || $ACTION == "ADD") && intval($arFields["QUANTITY_TO"]) <= 0) { $arFields["QUANTITY_TO"] = false; } return true; }
function Init() { if (\Bitrix\Main\Loader::includeModule('currency') && ($arCurrency = CCurrency::GetByID('RUR'))) { $base_currency = 'RUR'; } else { $base_currency = 'RUB'; } return array("SID" => "ems", "NAME" => GetMessage('SALE_DH_EMS_NAME'), "DESCRIPTION" => GetMessage('SALE_DH_EMS_DESCRIPTION'), "DESCRIPTION_INNER" => GetMessage('SALE_DH_EMS_DESCRIPTION_INNER'), "BASE_CURRENCY" => $base_currency, "HANDLER" => __FILE__, "DBGETSETTINGS" => array("CDeliveryEMS", "GetSettings"), "DBSETSETTINGS" => array("CDeliveryEMS", "SetSettings"), "GETCONFIG" => array("CDeliveryEMS", "GetConfig"), "COMPABILITY" => array("CDeliveryEMS", "Compability"), "CALCULATOR" => array("CDeliveryEMS", "Calculate"), "PROFILES" => array("delivery" => array("TITLE" => GetMessage("SALE_DH_EMS_DELIVERY_TITLE"), "DESCRIPTION" => '', "RESTRICTIONS_WEIGHT" => array(0, 31500), "RESTRICTIONS_SUM" => array(0)))); }
function Init() { if ($arCurrency = CCurrency::GetByID('RUR')) { $base_currency = 'RUR'; } else { $base_currency = 'RUB'; } return array("SID" => "russianpost", "NAME" => GetMessage('SALE_DH_RUSSIANPOST_NAME'), "DESCRIPTION" => GetMessage('SALE_DH_RUSSIANPOST_DESCRIPTION'), "DESCRIPTION_INNER" => GetMessage('SALE_DH_RUSSIANPOST_DESCRIPTION_INNER') . GetMessage('SALE_DH_RUSSIANPOST_DESCRIPTION_INNER2'), "BASE_CURRENCY" => $base_currency, "HANDLER" => __FILE__, "DBGETSETTINGS" => array("CDeliveryRUSSIANPOST", "GetSettings"), "DBSETSETTINGS" => array("CDeliveryRUSSIANPOST", "SetSettings"), "GETCONFIG" => array("CDeliveryRUSSIANPOST", "GetConfig"), "COMPABILITY" => array("CDeliveryRUSSIANPOST", "Compability"), "CALCULATOR" => array("CDeliveryRUSSIANPOST", "Calculate"), "PROFILES" => array("ground" => array("TITLE" => GetMessage("SALE_DH_RUSSIANPOST_GROUND_TITLE"), "DESCRIPTION" => '', "RESTRICTIONS_WEIGHT" => array(0), "RESTRICTIONS_SUM" => array(0)), "avia" => array("TITLE" => GetMessage("SALE_DH_RUSSIANPOST_AVIA_TITLE"), "DESCRIPTION" => '', "RESTRICTIONS_WEIGHT" => array(0), "RESTRICTIONS_SUM" => array(0)))); }
public static function Init() { if ($arCurrency = CCurrency::GetByID('RUR')) { $base_currency = 'RUR'; } else { $base_currency = 'RUB'; } return array("SID" => "ups", "NAME" => GetMessage('SALE_DH_UPS_NAME'), "DESCRIPTION" => GetMessage('SALE_DH_UPS_DESCRIPTION'), "DESCRIPTION_INNER" => GetMessage('SALE_DH_UPS_DESCRIPTION_INNER'), "BASE_CURRENCY" => $base_currency, "HANDLER" => __FILE__, "DBGETSETTINGS" => array("CDeliveryUPS", "GetSettings"), "DBSETSETTINGS" => array("CDeliveryUPS", "SetSettings"), "GETCONFIG" => array("CDeliveryUPS", "GetConfig"), "COMPABILITY" => array("CDeliveryUPS", "Compability"), "CALCULATOR" => array("CDeliveryUPS", "Calculate"), "PROFILES" => array("express" => array("TITLE" => GetMessage("SALE_DH_UPS_EXPRESS_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_UPS_EXPRESS_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, CSaleMeasure::Convert(150, "LBS", "G")), "RESTRICTIONS_SUM" => array(0)), "express_saver" => array("TITLE" => GetMessage("SALE_DH_UPS_EXPRESS_SAVER_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_UPS_EXPRESS_SAVER_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, CSaleMeasure::Convert(150, "LBS", "G")), "RESTRICTIONS_SUM" => array(0)))); }
function Init() { // fix a possible currency bug if ($arCurrency = CCurrency::GetByID('RUR')) { $base_currency = 'RUR'; } else { $base_currency = 'RUB'; } return array("SID" => "cpcr", "NAME" => GetMessage('SALE_DH_CPCR_NAME'), "DESCRIPTION" => GetMessage('SALE_DH_CPCR_DESCRIPTION'), "DESCRIPTION_INNER" => GetMessage('SALE_DH_CPCR_DESCRIPTION_INNER'), "BASE_CURRENCY" => $base_currency, "HANDLER" => __FILE__, "COMPABILITY" => array("CDeliveryCPCR", "Compability"), "CALCULATOR" => array("CDeliveryCPCR", "Calculate"), "PROFILES" => array("simple" => array("TITLE" => GetMessage("SALE_DH_CPCR_SIMPLE_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_SIMPLE_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 31500), "RESTRICTIONS_SUM" => array(0, 500000)), "simple13" => array("TITLE" => GetMessage("SALE_DH_CPCR_SIMPLE13_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_SIMPLE_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 31500), "RESTRICTIONS_SUM" => array(0, 500000)), "simple18" => array("TITLE" => GetMessage("SALE_DH_CPCR_SIMPLE18_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_SIMPLE_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 31500), "RESTRICTIONS_SUM" => array(0, 500000)), "econom" => array("TITLE" => GetMessage("SALE_DH_CPCR_ECONOM_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_ECONOM_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 68000), "RESTRICTIONS_SUM" => array(0, 500000)), "bizon" => array("TITLE" => GetMessage("SALE_DH_CPCR_BIZON_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_BIZON_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 68000), "RESTRICTIONS_SUM" => array(0, 500000)), "colibri" => array("TITLE" => GetMessage("SALE_DH_CPCR_COLIBRI_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_COLIBRI_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 68000), "RESTRICTIONS_SUM" => array(0, 500000)), "pelican" => array("TITLE" => GetMessage("SALE_DH_CPCR_PELICAN_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_PELICAN_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 68000), "RESTRICTIONS_SUM" => array(0, 500000)), "fraxt" => array("TITLE" => GetMessage("SALE_DH_CPCR_FRAXT_TITLE"), "DESCRIPTION" => GetMessage("SALE_DH_CPCR_FRAXT_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 68000), "RESTRICTIONS_SUM" => array(0, 500000)))); }
/** * @param $intRangeID * @param $strPrefix * @return string */ function __AddCellCurrency($intRangeID, $strPrefix) { $currencySelectbox = CCurrency::SelectBox("{$strPrefix}CURRENCY[{$intRangeID}]", '', "", true, "", "class=\"adm-select\" style=\"width: 169px;\""); return <<<CURRENCYCELL \t<td width="30%"> \t\t<span class="adm-select-wrap"> \t\t\t{$currencySelectbox} \t\t</span> \t</td> CURRENCYCELL; }
static function GetWMCurrency($currency) { $arCurrency = array(); if(CModule::IncludeModule("currency")) { $lcur = CCurrency::GetList(($b="name"), ($order1="asc"), LANGUAGE_ID); while($lcur_res = $lcur->Fetch()) { $arCurrency[$lcur_res['CURRENCY']] = COption::GetOptionString(COnpayPayment::$module_id, "currency_".$lcur_res['CURRENCY']); } } if(isset($arCurrency, $currency)) $currency = $arCurrency[$currency]; return $currency; }
public static function PrepareListItems() { if (!CModule::IncludeModule('currency')) { return array(); } $ary = array(); $dbCurrencies = CCurrency::GetList($by = 'sort', $order = 'asc'); while ($arCurrency = $dbCurrencies->Fetch()) { $ary[$arCurrency['CURRENCY']] = $arCurrency['FULL_NAME']; } return $ary; }
public static function Init() { if ($arCurrency = CCurrency::GetByID('RUR')) { $base_currency = 'RUR'; } else { $base_currency = 'RUB'; } return array( /* Basic description */ "SID" => "ems", "NAME" => GetMessage('SALE_DH_EMS_NAME'), "DESCRIPTION" => GetMessage('SALE_DH_EMS_DESCRIPTION'), "DESCRIPTION_INNER" => GetMessage('SALE_DH_EMS_DESCRIPTION_INNER'), "BASE_CURRENCY" => $base_currency, "HANDLER" => __FILE__, /* Handler methods */ "DBGETSETTINGS" => array("CDeliveryEMS", "GetSettings"), "DBSETSETTINGS" => array("CDeliveryEMS", "SetSettings"), "GETCONFIG" => array("CDeliveryEMS", "GetConfig"), "COMPABILITY" => array("CDeliveryEMS", "Compability"), "CALCULATOR" => array("CDeliveryEMS", "Calculate"), /* List of delivery profiles */ "PROFILES" => array( "delivery" => array( "TITLE" => GetMessage("SALE_DH_EMS_DELIVERY_TITLE"), "DESCRIPTION" => '', //GetMessage("SALE_DH_EMS_DELIVERY_DESCRIPTION"), "RESTRICTIONS_WEIGHT" => array(0, 31500), "RESTRICTIONS_SUM" => array(0), ), ) ); }
function CheckFields($ACTION, &$arFields, $ID = 0) { if (is_set($arFields, "SITE_ID") && strlen($arFields["SITE_ID"]) > 0) { $arFields["LID"] = $arFields["SITE_ID"]; } if ((is_set($arFields, "LID") || $ACTION == "ADD") && strlen($arFields["LID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_SITE"), "EMPTY_SITE_ID"); return false; } if ((is_set($arFields, "PERSON_TYPE_ID") || $ACTION == "ADD") && IntVal($arFields["PERSON_TYPE_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_PERS_TYPE"), "EMPTY_PERSON_TYPE_ID"); return false; } if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_USER_ID"), "EMPTY_USER_ID"); return false; } if (is_set($arFields, "PAYED") && $arFields["PAYED"] != "Y") { $arFields["PAYED"] = "N"; } if (is_set($arFields, "CANCELED") && $arFields["CANCELED"] != "Y") { $arFields["CANCELED"] = "N"; } if (is_set($arFields, "STATUS_ID") && strlen($arFields["STATUS_ID"]) <= 0) { $arFields["STATUS_ID"] = "N"; } if (is_set($arFields, "ALLOW_DELIVERY") && $arFields["ALLOW_DELIVERY"] != "Y") { $arFields["ALLOW_DELIVERY"] = "N"; } if (is_set($arFields, "PRICE") || $ACTION == "ADD") { $arFields["PRICE"] = str_replace(",", ".", $arFields["PRICE"]); $arFields["PRICE"] = DoubleVal($arFields["PRICE"]); } if (is_set($arFields, "PRICE_DELIVERY") || $ACTION == "ADD") { $arFields["PRICE_DELIVERY"] = str_replace(",", ".", $arFields["PRICE_DELIVERY"]); $arFields["PRICE_DELIVERY"] = DoubleVal($arFields["PRICE_DELIVERY"]); } if (is_set($arFields, "SUM_PAID") || $ACTION == "ADD") { $arFields["SUM_PAID"] = str_replace(",", ".", $arFields["SUM_PAID"]); $arFields["SUM_PAID"] = DoubleVal($arFields["SUM_PAID"]); } if (is_set($arFields, "DISCOUNT_VALUE") || $ACTION == "ADD") { $arFields["DISCOUNT_VALUE"] = str_replace(",", ".", $arFields["DISCOUNT_VALUE"]); $arFields["DISCOUNT_VALUE"] = DoubleVal($arFields["DISCOUNT_VALUE"]); } if (is_set($arFields, "TAX_VALUE") || $ACTION == "ADD") { $arFields["TAX_VALUE"] = str_replace(",", ".", $arFields["TAX_VALUE"]); $arFields["TAX_VALUE"] = DoubleVal($arFields["TAX_VALUE"]); } if (!is_set($arFields, "LOCKED_BY") && (!is_set($arFields, "UPDATED_1C") || is_set($arFields, "UPDATED_1C") && $arFields["UPDATED_1C"] != "Y")) { $arFields["UPDATED_1C"] = "N"; } if ((is_set($arFields, "CURRENCY") || $ACTION == "ADD") && strlen($arFields["CURRENCY"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_CURRENCY"), "EMPTY_CURRENCY"); return false; } if (is_set($arFields, "CURRENCY")) { if (!($arCurrency = CCurrency::GetByID($arFields["CURRENCY"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["CURRENCY"], GetMessage("SKGO_WRONG_CURRENCY")), "ERROR_NO_CURRENCY"); return false; } } if (is_set($arFields, "LID")) { $dbSite = CSite::GetByID($arFields["LID"]); if (!$dbSite->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["LID"], GetMessage("SKGO_WRONG_SITE")), "ERROR_NO_SITE"); return false; } } if (is_set($arFields, "USER_ID")) { $dbUser = CUser::GetByID($arFields["USER_ID"]); if (!$dbUser->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["USER_ID"], GetMessage("SKGO_WRONG_USER")), "ERROR_NO_USER_ID"); return false; } } if (is_set($arFields, "PERSON_TYPE_ID")) { if (!($arPersonType = CSalePersonType::GetByID($arFields["PERSON_TYPE_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PERSON_TYPE_ID"], GetMessage("SKGO_WRONG_PERSON_TYPE")), "ERROR_NO_PERSON_TYPE"); return false; } } if (is_set($arFields, "PAY_SYSTEM_ID") && IntVal($arFields["PAY_SYSTEM_ID"]) > 0) { if (!($arPaySystem = CSalePaySystem::GetByID(IntVal($arFields["PAY_SYSTEM_ID"])))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PAY_SYSTEM_ID"], GetMessage("SKGO_WRONG_PS")), "ERROR_NO_PAY_SYSTEM"); return false; } } if (is_set($arFields, "DELIVERY_ID") && (strpos($arFields["DELIVERY_ID"], ":") !== false || IntVal($arFields["DELIVERY_ID"]) > 0)) { if (strpos($arFields["DELIVERY_ID"], ":") !== false) { $arId = explode(":", $arFields["DELIVERY_ID"]); $obDelivery = new CSaleDeliveryHandler(); if ($arDelivery = $obDelivery->GetBySID($arId[0])) { if ($arDelivery = $arDelivery->Fetch()) { if (!is_set($arDelivery["PROFILES"], $arId[1])) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } } else { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } else { if (!($arDelivery = CSaleDelivery::GetByID(IntVal($arFields["DELIVERY_ID"])))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } } if (is_set($arFields, "STATUS_ID")) { if (!($arStatus = CSaleStatus::GetByID($arFields["STATUS_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["STATUS_ID"], GetMessage("SKGO_WRONG_STATUS")), "ERROR_NO_STATUS_ID"); return false; } } return True; }
switch ($_REQUEST['action']) { case "delete": if ($CURRENCY_RIGHT == "W") { if (!CCurrency::Delete($ID)) { if ($ex = $APPLICATION->GetException()) { $lAdmin->AddGroupError($ex->GetString(), $ID); } else { $lAdmin->AddGroupError(GetMessage("currency_err1"), $ID); } } } break; } } } $rsData = CCurrency::GetList($by, $order); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("CURRENCY_TITLE"))); $arHeaders = array(); $arHeaders[] = array("id" => "CURRENCY", "content" => GetMessage('currency_curr'), "sort" => "CURRENCY", "default" => true); $arHeaders[] = array("id" => "FULL_NAME", "content" => GetMessage('CURRENCY_FULL_NAME'), "sort" => "name", "default" => true); $arHeaders[] = array("id" => "SORT", "content" => GetMessage('currency_sort'), "sort" => "sort", "default" => true); $arHeaders[] = array("id" => "AMOUNT_CNT", "content" => GetMessage('currency_rate_cnt'), "default" => true); $arHeaders[] = array("id" => "AMOUNT", "content" => GetMessage('currency_rate'), "default" => true); $lAdmin->AddHeaders($arHeaders); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_CURRENCY, $arRes, "/bitrix/admin/currency_edit.php?ID=" . $f_CURRENCY . "&lang=" . LANGUAGE_ID, GetMessage('CURRENCY_A_EDIT')); $row->AddViewField("CURRENCY", '<a href="/bitrix/admin/currency_edit.php?ID=' . $f_CURRENCY . '&lang=' . LANGUAGE_ID . '" title="' . GetMessage('CURRENCY_A_EDIT_TITLE') . '">' . $f_CURRENCY . '</a>'); $row->AddInputField("SORT", array("size" => "3")); $row->AddViewField("FULL_NAME", $f_FULL_NAME);
protected function __ConvertOldFormat($strAction, &$arFields) { global $APPLICATION; $arMsg = array(); $boolResult = true; $arNeedFields = array('LID', 'CURRENCY', 'DISCOUNT_TYPE', 'DISCOUNT_VALUE', 'PRICE_FROM', 'PRICE_TO'); $arUpdateFields = array('DISCOUNT_VALUE', 'PRICE_FROM', 'PRICE_TO'); $strAction = ToUpper($strAction); if (!array_key_exists('CONDITIONS', $arFields) && !array_key_exists('ACTIONS', $arFields)) { $strSiteCurrency = ''; $boolUpdate = false; if ('UPDATE' == $strAction) { $boolNeedQuery = false; foreach ($arUpdateFields as &$strFieldID) { if (array_key_exists($strFieldID, $arFields)) { $boolUpdate = true; break; } } if (isset($strFieldID)) { unset($strFieldID); } if ($boolUpdate) { foreach ($arNeedFields as &$strFieldID) { if (!array_key_exists($strFieldID, $arFields)) { $boolNeedQuery = true; break; } } if (isset($strFieldID)) { unset($strFieldID); } if ($boolNeedQuery) { $rsDiscounts = CSaleDiscount::GetList(array(), array('ID' => $arFields['ID']), false, false, $arNeedFields); if ($arDiscount = $rsDiscounts->Fetch()) { foreach ($arNeedFields as &$strFieldID) { if (!array_key_exists($strFieldID, $arFields)) { $arFields[$strFieldID] = $arDiscount[$strFieldID]; } } if (isset($strFieldID)) { unset($strFieldID); } } else { $boolUpdate = false; $boolResult = false; $arMsg[] = array('id' => 'ID', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_ABSENT')); } } } } if ('ADD' == $strAction || $boolUpdate) { if (!array_key_exists('LID', $arFields)) { $boolResult = false; $arMsg[] = array('id' => 'LID', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_SITE_ID_ABSENT')); } else { $arFields['LID'] = strval($arFields['LID']); if ('' == $arFields['LID']) { $boolResult = false; $arMsg[] = array('id' => 'LID', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_SITE_ID_ABSENT')); } else { $rsSites = CSite::GetByID($arFields["LID"]); if (!($arSite = $rsSites->Fetch())) { $boolResult = false; $arMsg[] = array('id' => 'LID', 'text' => Loc::getMessage('SKGD_NO_SITE', array('#ID#' => $arFields['LID']))); } else { $strSiteCurrency = CSaleLang::GetLangCurrency($arFields['LID']); } } } if (!array_key_exists('CURRENCY', $arFields)) { $boolResult = false; $arMsg[] = array('id' => 'CURRENCY', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_CURRENCY_ABSENT')); } else { $arFields['CURRENCY'] = strval($arFields['CURRENCY']); if ('' == $arFields['CURRENCY']) { $boolResult = false; $arMsg[] = array('id' => 'CURRENCY', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_CURRENCY_ABSENT')); } else { if (!($arCurrency = CCurrency::GetByID($arFields["CURRENCY"]))) { $boolResult = false; $arMsg[] = array('id' => 'CURRENCY', 'text' => Loc::getMessage('SKGD_NO_CURRENCY', array('#ID#' => $arFields['CURRENCY']))); } } } if (!array_key_exists("DISCOUNT_TYPE", $arFields)) { $boolResult = false; $arMsg[] = array('id' => 'DISCOUNT_TYPE', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_TYPE_ABSENT')); } else { $arFields["DISCOUNT_TYPE"] = strval($arFields["DISCOUNT_TYPE"]); if (CSaleDiscount::OLD_DSC_TYPE_PERCENT != $arFields["DISCOUNT_TYPE"] && CSaleDiscount::OLD_DSC_TYPE_FIX != $arFields["DISCOUNT_TYPE"]) { $boolResult = false; $arMsg[] = array('id' => 'DISCOUNT_TYPE', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_TYPE_BAD')); } } if (!array_key_exists('DISCOUNT_VALUE', $arFields)) { $boolResult = false; $arMsg[] = array('id' => 'DISCOUNT_VALUE', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_VALUE_ABSENT')); } else { $arFields['DISCOUNT_VALUE'] = (double) str_replace(',', '.', $arFields['DISCOUNT_VALUE']); if (0 >= $arFields['DISCOUNT_VALUE']) { $boolResult = false; $arMsg[] = array('id' => 'DISCOUNT_VALUE', 'text' => Loc::getMessage('BT_MOD_SALE_ERR_DSC_VALUE_BAD')); } } if ($boolResult) { $arConditions = array('CLASS_ID' => 'CondGroup', 'DATA' => array('All' => 'AND', 'True' => 'True'), 'CHILDREN' => array()); $arActions = array('CLASS_ID' => 'CondGroup', 'DATA' => array('All' => 'AND', 'True' => 'True'), 'CHILDREN' => array()); $boolCurrency = $arFields['CURRENCY'] == $strSiteCurrency; if (array_key_exists('PRICE_FROM', $arFields)) { $arFields["PRICE_FROM"] = str_replace(",", ".", strval($arFields["PRICE_FROM"])); $arFields["PRICE_FROM"] = doubleval($arFields["PRICE_FROM"]); if (0 < $arFields["PRICE_FROM"]) { $dblValue = roundEx($boolCurrency ? $arFields['PRICE_FROM'] : CCurrencyRates::ConvertCurrency($arFields['PRICE_FROM'], $arFields['CURRENCY'], $strSiteCurrency), SALE_VALUE_PRECISION); $arConditions['CHILDREN'][] = array('CLASS_ID' => 'CondBsktAmtGroup', 'DATA' => array('logic' => 'EqGr', 'Value' => (string) $dblValue, 'All' => 'AND'), 'CHILDREN' => array()); $arFields["PRICE_FROM"] = $dblValue; } } if (array_key_exists('PRICE_TO', $arFields)) { $arFields["PRICE_TO"] = str_replace(",", ".", strval($arFields["PRICE_TO"])); $arFields["PRICE_TO"] = doubleval($arFields["PRICE_TO"]); if (0 < $arFields["PRICE_TO"]) { $dblValue = roundEx($boolCurrency ? $arFields['PRICE_TO'] : CCurrencyRates::ConvertCurrency($arFields['PRICE_TO'], $arFields['CURRENCY'], $strSiteCurrency), SALE_VALUE_PRECISION); $arConditions['CHILDREN'][] = array('CLASS_ID' => 'CondBsktAmtGroup', 'DATA' => array('logic' => 'EqLs', 'Value' => (string) $dblValue, 'All' => 'AND'), 'CHILDREN' => array()); $arFields["PRICE_TO"] = $dblValue; } } if (self::OLD_DSC_TYPE_PERCENT == $arFields['DISCOUNT_TYPE']) { $arActions['CHILDREN'][] = array('CLASS_ID' => 'ActSaleBsktGrp', 'DATA' => array('Type' => 'Discount', 'Value' => (string) roundEx($arFields['DISCOUNT_VALUE'], SALE_VALUE_PRECISION), 'Unit' => 'Perc', 'All' => 'AND'), 'CHILDREN' => array()); } else { $dblValue = roundEx($boolCurrency ? $arFields['DISCOUNT_VALUE'] : CCurrencyRates::ConvertCurrency($arFields['DISCOUNT_VALUE'], $arFields['CURRENCY'], $strSiteCurrency), SALE_VALUE_PRECISION); $arActions['CHILDREN'][] = array('CLASS_ID' => 'ActSaleBsktGrp', 'DATA' => array('Type' => 'Discount', 'Value' => (string) $dblValue, 'Unit' => 'CurAll', 'All' => 'AND'), 'CHILDREN' => array()); $arFields['DISCOUNT_VALUE'] = $dblValue; } $arFields['CONDITIONS'] = $arConditions; $arFields['ACTIONS'] = $arActions; $arFields['CURRENCY'] = $strSiteCurrency; } else { $obError = new CAdminException($arMsg); $APPLICATION->ThrowException($obError); } } } return $boolResult; }
if ($arCurrentValues['USE_MIN_AMOUNT'] != "N") { $arComponentParameters["PARAMETERS"]["MIN_AMOUNT"] = array("PARENT" => "STORE_SETTINGS", "NAME" => GetMessage("MIN_AMOUNT"), "TYPE" => "STRING", "DEFAULT" => 10); } $arComponentParameters["PARAMETERS"]['STORE_PATH'] = array('PARENT' => 'STORE_SETTINGS', 'NAME' => GetMessage('STORE_PATH'), "TYPE" => "STRING", "DEFAULT" => "/store/#store_id#"); $arComponentParameters["PARAMETERS"]['MAIN_TITLE'] = array('PARENT' => 'STORE_SETTINGS', 'NAME' => GetMessage('MAIN_TITLE'), "TYPE" => "STRING", "DEFAULT" => GetMessage('MAIN_TITLE_VALUE')); } if (!IsModuleInstalled("sale")) { unset($arComponentParameters["PARAMETERS"]["USE_ALSO_BUY"]); unset($arComponentParameters["GROUPS"]["ALSO_BUY_SETTINGS"]); } elseif ($arCurrentValues["USE_ALSO_BUY"] == "Y") { $arComponentParameters["PARAMETERS"]["ALSO_BUY_ELEMENT_COUNT"] = array("PARENT" => "ALSO_BUY_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_ALSO_BUY_ELEMENT_COUNT"), "TYPE" => "STRING", "DEFAULT" => 5); $arComponentParameters["PARAMETERS"]["ALSO_BUY_MIN_BUYES"] = array("PARENT" => "ALSO_BUY_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_ALSO_BUY_MIN_BUYES"), "TYPE" => "STRING", "DEFAULT" => 2); } if (CModule::IncludeModule('catalog') && CModule::IncludeModule('currency')) { $arComponentParameters["PARAMETERS"]['CONVERT_CURRENCY'] = array('PARENT' => 'PRICES', 'NAME' => GetMessage('CP_BC_CONVERT_CURRENCY'), 'TYPE' => 'CHECKBOX', 'DEFAULT' => 'N', 'REFRESH' => 'Y'); if (isset($arCurrentValues['CONVERT_CURRENCY']) && 'Y' == $arCurrentValues['CONVERT_CURRENCY']) { $arCurrencyList = array(); $rsCurrencies = CCurrency::GetList($by = 'SORT', $order = 'ASC'); while ($arCurrency = $rsCurrencies->Fetch()) { $arCurrencyList[$arCurrency['CURRENCY']] = $arCurrency['CURRENCY']; } $arComponentParameters['PARAMETERS']['CURRENCY_ID'] = array('PARENT' => 'PRICES', 'NAME' => GetMessage('CP_BC_CURRENCY_ID'), 'TYPE' => 'LIST', 'VALUES' => $arCurrencyList, 'DEFAULT' => CCurrency::GetBaseCurrency(), "ADDITIONAL_VALUES" => "Y"); } } if (!$OFFERS_IBLOCK_ID) { unset($arComponentParameters["GROUPS"]["OFFERS_SETTINGS"]); } else { $arComponentParameters["PARAMETERS"]["OFFERS_CART_PROPERTIES"] = array("PARENT" => "PRICES", "NAME" => GetMessage("CP_BC_OFFERS_CART_PROPERTIES"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_Offers); $arComponentParameters["PARAMETERS"]["OFFERS_SORT_FIELD"] = array("PARENT" => "OFFERS_SETTINGS", "NAME" => GetMessage("CP_BC_OFFERS_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => array("shows" => GetMessage("IBLOCK_SORT_SHOWS"), "sort" => GetMessage("IBLOCK_SORT_SORT"), "timestamp_x" => GetMessage("IBLOCK_SORT_TIMESTAMP"), "name" => GetMessage("IBLOCK_SORT_NAME"), "id" => GetMessage("IBLOCK_SORT_ID"), "active_from" => GetMessage("IBLOCK_SORT_ACTIVE_FROM"), "active_to" => GetMessage("IBLOCK_SORT_ACTIVE_TO")), "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "sort"); $arComponentParameters["PARAMETERS"]["OFFERS_SORT_ORDER"] = array("PARENT" => "OFFERS_SETTINGS", "NAME" => GetMessage("CP_BC_OFFERS_SORT_ORDER"), "TYPE" => "LIST", "VALUES" => $arAscDesc, "DEFAULT" => "asc", "ADDITIONAL_VALUES" => "Y"); }
$bVarsFromForm = true; } } $dbUserCards = CSaleUserCards::GetList(array("DATE_UPDATE" => "DESC"), array("ID" => $ID, "USER_ID" => IntVal($GLOBALS["USER"]->GetID())), false, false, array("ID", "USER_ID", "ACTIVE", "SORT", "PAY_SYSTEM_ACTION_ID", "CURRENCY", "CARD_TYPE", "CARD_NUM", "CARD_CODE", "CARD_EXP_MONTH", "CARD_EXP_YEAR", "DESCRIPTION", "SUM_MIN", "SUM_MAX", "SUM_CURRENCY", "TIMESTAMP_X", "LAST_STATUS", "LAST_STATUS_CODE", "LAST_STATUS_DESCRIPTION", "LAST_STATUS_MESSAGE", "LAST_SUM", "LAST_CURRENCY", "LAST_DATE")); if ($arUserCards = $dbUserCards->GetNext()) { $arResult = $arUserCards; $arResult["CARD_NUM"] = CSaleUserCards::CryptData($arResult["CARD_NUM"], "D"); } else { $arResult["ID"] = 0; $arResult["ACTIVE"] = "Y"; $arResult["SORT"] = 100; } if ($bVarsFromForm) { foreach ($_POST as $k => $v) { $arResult[$k] = htmlspecialcharsex($v); $arResult['~' . $k] = $v; } } $arResult["ERROR_MESSAGE"] = $errorMessage; $dbPaySysActions = CSalePaySystemAction::GetList(array("PERSON_TYPE_ID" => "ASC", "NAME" => "ASC", "PT_NAME" => "ASC", "PS_NAME" => "ASC"), array("PS_LID" => SITE_ID, "HAVE_ACTION" => "Y"), false, false, array("*")); $arResult["PAY_SYSTEM"] = array(); while ($arPaySysActions = $dbPaySysActions->GetNext()) { $arResult["PAY_SYSTEM"][] = $arPaySysActions; } $dbCurrency = CCurrency::GetList($by = "sort", $order = "asc"); $arResult["CURRENCY_INFO"] = array(); while ($arCurrency = $dbCurrency->GetNext()) { $arResult["CURRENCY_INFO"][] = $arCurrency; } $arResult["CARD_TYPE_INFO"] = array("VISA" => "Visa", "MASTERCARD" => "MasterCard", "AMEX" => "Amex", "DINERS" => "Diners", "DISCOVER" => "Discover", "JCB" => "JCB", "ENROUTE" => "Enroute"); $this->IncludeComponentTemplate();
unset($strEmptyPreview); $arSKUPropList = array(); $arSKUPropIDs = array(); $arSKUPropKeys = array(); $boolSKU = false; $strBaseCurrency = ''; $boolConvert = isset($arResult['CONVERT_CURRENCY']['CURRENCY_ID']); // $skuPropList = array(); // array("id_catalog" => array(...)) $skuPropIds = array(); // array("id_catalog" => array(...)) $skuPropKeys = array(); // array("id_catalog" => array(...)) if (!$boolConvert) { $strBaseCurrency = CCurrency::GetBaseCurrency(); } $catalogs = array(); foreach ($arResult['CATALOGS'] as $catalog) { $offersCatalogId = (int) $catalog['OFFERS_IBLOCK_ID']; $offersPropId = (int) $catalog['OFFERS_PROPERTY_ID']; $catalogId = (int) $catalog['IBLOCK_ID']; $sku = false; if ($offersCatalogId > 0 && $offersPropId > 0) { $sku = array("IBLOCK_ID" => $offersCatalogId, "SKU_PROPERTY_ID" => $offersPropId, "PRODUCT_IBLOCK_ID" => $catalogId); } if (!empty($sku) && is_array($sku)) { $skuPropList[$catalogId] = CIBlockPriceTools::getTreeProperties($sku, $arParams['OFFER_TREE_PROPS'][$offersCatalogId], array('PICT' => $arEmptyPreview, 'NAME' => '-')); $needValues = array(); CIBlockPriceTools::getTreePropertyValues($skuPropList[$catalogId], $needValues); $skuPropIds[$catalogId] = array_keys($skuPropList[$catalogId]);
?> </select><br /><br /></td> </tr> <tr class="heading"> <td colspan="2"><?php echo GetMessage('YANDEX_CURRENCIES'); ?> </td> </tr> <tr> <td colspan="2"><br /> <?php $arCurrencyList = array(); $arCurrencyAllowed = array('RUR', 'RUB', 'USD', 'EUR', 'UAH', 'BYR', 'KZT'); $dbRes = CCurrency::GetList($by = 'sort', $order = 'asc'); while ($arRes = $dbRes->GetNext()) { if (in_array($arRes['CURRENCY'], $arCurrencyAllowed)) { $arCurrencyList[$arRes['CURRENCY']] = $arRes['FULL_NAME']; } } $arValues = array('SITE' => GetMessage('YANDEX_CURRENCY_RATE_SITE'), 'CBRF' => GetMessage('YANDEX_CURRENCY_RATE_CBRF'), 'NBU' => GetMessage('YANDEX_CURRENCY_RATE_NBU'), 'NBK' => GetMessage('YANDEX_CURRENCY_RATE_NBK'), 'CB' => GetMessage('YANDEX_CURRENCY_RATE_CB')); ?> <table cellpadding="2" cellspacing="0" border="0" class="internal" align="center"> <thead> <tr class="heading"> <td colspan="2"><?php echo GetMessage('YANDEX_CURRENCY'); ?> </td> <td><?php
if (${$key} == "Y") { echo "checked"; } ?> ></td> </tr> <?php } elseif ($key == "BASE_CURRENCY" && CModule::IncludeModule("currency")) { ?> <tr> <td class="adm-detail-valign-top"><?php echo GetMessage("STAT_OPT_BASE_CURRENCY"); ?> </td> <td><?php echo CCurrency::SelectBox("BASE_CURRENCY", $BASE_CURRENCY, " ", True, ""); ?> <br> <input type="checkbox" name="recount_base_currency" id="recount_base_currency" value="Y"><label for="recount_base_currency"><?php echo GetMessage("STAT_OPT_DO_RECOUNT"); ?> </label></td> </tr> <?php } } else { $val = COption::GetOptionString($module_id, $Option[0]); $type = $Option[2]; ?> <tr> <td <?php
/** * <p>Метод возвращает параметры наименьшей цены товара productID в количестве quantity для посетителя, входящего в группы пользователей arUserGroups.</p> * * * * * @param int $productID Код товара. * * * * @param $int Приобретаемое количество. * * * * @param quantit $y = 1[ массив групп, которым принадлежит пользователь. Для текущего * пользователя он возвращается методом $USER->GetUserGroupArray() * * * * @param array $arUserGroups = array()[ "Y", если вычисляется для продления товара (продажа контента), "N" в * остальных случаях. * * * * @param string $renewal = "N"[ Массив цен. Если он установлен, то пересчет идет не по ценам из * базы данных, а по ценам из этого массива. Представляет собой * массив ассоциативных массивов с ключами: <ul> <li> <b>ID</b> - код цены;</li> * <li> <b>PRICE</b> - цена;</li> <li> <b>CURRENCY</b> - валюта;</li> <li> <b>CATALOG_GROUP_ID</b> - код * типа цен.</li> </ul> * * * * @param array $arPrices = array()[ Сайт, для которого производится вычисление. Если парамерт равен * <i>false</i>, то берется текущий сайт. * * * * @param string $siteID = false]]]]] * * * * @return array <p>Массив вида:</p><pre class="syntax">array( "PRICE" => * массив_параметров_минимальной_цены, "DISCOUNT_PRICE" => * минимальная_цена_в_базовой_валюте, "DISCOUNT" => * массив_параметров_максимальной_доступной_скидки )</pre><p><b>Обратите * внимание, что</b> <i>DISCOUNT_PRICE</i> это минимальная цена в <b>базовой * валюте</b>. Чтобы перевести эту цену в валюту товара, * необходимо:</p><pre class="syntax">array( $baseCurrency = CCurrency::GetBaseCurrency(); * $arPrice["DISCOUNT_PRICE"] = CCurrencyRates::ConvertCurrency($arPrice['DISCOUNT_PRICE'], $baseCurrency, * $arPrice["PRICE"]["CURRENCY"]); )</pre><a name="examples"></a> * * * <h4>Example</h4> * <pre> * <? * $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal); * if (!$arPrice || count($arPrice) <= 0) * { * if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $USER->GetUserGroupArray())) * { * $quantity = $nearestQuantity; * $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal); * } * } * echo "<pre>"; * print_r($arPrice); * echo "</pre>"; * ?> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/catalog/classes/ccatalogproduct/ccatalogproduct__getoptimalprice.7c16046d.php * @author Bitrix */ public static function GetOptimalPrice($intProductID, $quantity = 1, $arUserGroups = array(), $renewal = "N", $arPrices = array(), $siteID = false, $arDiscountCoupons = false) { global $APPLICATION; $mxResult = true; foreach (GetModuleEvents("catalog", "OnGetOptimalPrice", true) as $arEvent) { $mxResult = ExecuteModuleEventEx($arEvent, array($intProductID, $quantity, $arUserGroups, $renewal, $arPrices, $siteID, $arDiscountCoupons)); if (true !== $mxResult) return $mxResult; } $intProductID = intval($intProductID); if (0 >= $intProductID) { $APPLICATION->ThrowException(GetMessage("BT_MOD_CATALOG_PROD_ERR_PRODUCT_ID_ABSENT"), "NO_PRODUCT_ID"); return false; } $quantity = doubleval($quantity); if (0 >= $quantity) { $APPLICATION->ThrowException(GetMessage("BT_MOD_CATALOG_PROD_ERR_QUANTITY_ABSENT"), "NO_QUANTITY"); return false; } if (!is_array($arUserGroups) && intval($arUserGroups)."|" == $arUserGroups."|") $arUserGroups = array(intval($arUserGroups)); if (!is_array($arUserGroups)) $arUserGroups = array(); if (!in_array(2, $arUserGroups)) $arUserGroups[] = 2; $rsVAT = CCatalogProduct::GetVATInfo($intProductID); if ($arVAT = $rsVAT->Fetch()) { $arVAT['RATE'] = doubleval($arVAT['RATE'] * 0.01); } else { $arVAT = array('RATE' => 0.0, 'VAT_INCLUDED' => 'N'); } $renewal = (($renewal == "N") ? "N" : "Y"); if (false === $siteID) $siteID = SITE_ID; if (false === $arDiscountCoupons) $arDiscountCoupons = CCatalogDiscountCoupon::GetCoupons(); $strBaseCurrency = CCurrency::GetBaseCurrency(); if (empty($strBaseCurrency)) { $APPLICATION->ThrowException(GetMessage("BT_MOD_CATALOG_PROD_ERR_NO_BASE_CURRENCY"), "NO_BASE_CURRENCY"); return false; } $intIBlockID = intval(CIBlockElement::GetIBlockByID($intProductID)); if (0 >= $intIBlockID) { $APPLICATION->ThrowException(str_replace("#ID#", $intProductID, GetMessage('BT_MOD_CATALOG_PROD_ERR_ELEMENT_ID_NOT_FOUND')), "NO_ELEMENT"); return false; } if (!isset($arPrices) || !is_array($arPrices)) $arPrices = array(); if (empty($arPrices)) { $arPrices = array(); $dbPriceList = CPrice::GetListEx( array(), array( "PRODUCT_ID" => $intProductID, "GROUP_GROUP_ID" => $arUserGroups, "GROUP_BUY" => "Y", "+<=QUANTITY_FROM" => $quantity, "+>=QUANTITY_TO" => $quantity ), false, false, array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY") ); while ($arPriceList = $dbPriceList->Fetch()) { $arPriceList['ELEMENT_IBLOCK_ID'] = $intIBlockID; $arPrices[] = $arPriceList; } } else { foreach ($arPrices as &$arOnePrice) { $arOnePrice['ELEMENT_IBLOCK_ID'] = $intIBlockID; } if (isset($arOnePrice)) unset($arOnePrice); } if (empty($arPrices)) return false; // $boolDiscountVat = ('N' != COption::GetOptionString('catalog', 'discount_vat', 'Y')); $boolDiscountVat = true; $strDiscSaveApply = COption::GetOptionString('catalog', 'discsave_apply', 'R'); $dblMinPrice = -1; $arMinPrice = array(); $arMinDiscounts = array(); foreach ($arPrices as &$arPriceList) { $arPriceList['VAT_RATE'] = $arVAT['RATE']; $arPriceList['VAT_INCLUDED'] = $arVAT['VAT_INCLUDED']; $arPriceList['ORIG_VAT_INCLUDED'] = $arPriceList['VAT_INCLUDED']; if ($boolDiscountVat) { if ('N' == $arPriceList['VAT_INCLUDED']) { $arPriceList['PRICE'] *= (1 + $arPriceList['VAT_RATE']); $arPriceList['VAT_INCLUDED'] = 'Y'; } } else { if ('Y' == $arPriceList['VAT_INCLUDED']) { $arPriceList['PRICE'] /= (1 + $arPriceList['VAT_RATE']); $arPriceList['VAT_INCLUDED'] = 'N'; } } if ($arPriceList["CURRENCY"] == $strBaseCurrency) $dblCurrentPrice = $arPriceList["PRICE"]; else $dblCurrentPrice = CCurrencyRates::ConvertCurrency($arPriceList["PRICE"], $arPriceList["CURRENCY"], $strBaseCurrency); $arDiscounts = CCatalogDiscount::GetDiscount($intProductID, $intIBlockID, $arPriceList["CATALOG_GROUP_ID"], $arUserGroups, $renewal, $siteID, $arDiscountCoupons); $arDiscSave = array(); $arPriceDiscount = array(); $arResultPrice = array( 'PRICE' => $dblCurrentPrice, 'CURRENCY' => $strBaseCurrency, ); $arDiscountApply = array(); if (!empty($arDiscounts)) { CCatalogProduct::__PrimaryDiscountFilter($arDiscounts, $arPriceDiscount, $arDiscSave, $arResultPrice); if (!empty($arPriceDiscount)) { foreach ($arPriceDiscount as &$arOnePriority) { $boolResultPriority = CCatalogProduct::__CalcOnePriority($arOnePriority, $arDiscountApply, $arResultPrice); if (!$boolResultPriority) { return false; } else { if (isset($arResultPrice['LAST_DISCOUNT']) && 'Y' == $arResultPrice['LAST_DISCOUNT']) break; } } if (isset($arOnePriority)) unset($arOnePriority); } if (!empty($arDiscSave)) { switch($strDiscSaveApply) { case 'R': $arDiscSaveResult = array( 'PRICE' => $dblCurrentPrice, 'CURRENCY' => $strBaseCurrency, ); $arDiscSaveApply = array(); $boolResultDiscSave = CCatalogProduct::__CalcDiscSave($arDiscSave, $arDiscSaveApply, $arDiscSaveResult); if (!$boolResultDiscSave) { return false; } else { if ($arDiscSaveResult['PRICE'] < $arResultPrice['PRICE']) { $arResultPrice = $arDiscSaveResult; $arDiscountApply = $arDiscSaveApply; } } break; case 'A': $boolResultDiscSave = CCatalogProduct::__CalcDiscSave($arDiscSave, $arDiscountApply, $arResultPrice); if (!$boolResultDiscSave) { return false; } break; case 'D': if (empty($arDiscountApply)) { $boolResultDiscSave = CCatalogProduct::__CalcDiscSave($arDiscSave, $arDiscountApply, $arResultPrice); if (!$boolResultDiscSave) { return false; } } break; } } } if (-1 == $dblMinPrice || $dblMinPrice > $arResultPrice['PRICE']) { $dblMinPrice = $arResultPrice['PRICE']; $arMinPrice = $arPriceList; $arMinDiscounts = $arDiscountApply; } } if (isset($arPriceList)) unset($arPriceList); if ($boolDiscountVat) { if ('N' == $arMinPrice['ORIG_VAT_INCLUDED']) { $arMinPrice['PRICE'] /= (1 + $arMinPrice['VAT_RATE']); $arMinPrice['VAT_INCLUDED'] = $arMinPrice['ORIG_VAT_INCLUDED']; } } else { if ('Y' == $arMinPrice['ORIG_VAT_INCLUDED']) { $arMinPrice['PRICE'] *= (1 + $arMinPrice['VAT_RATE']); $arMinPrice['VAT_INCLUDED'] = $arMinPrice['ORIG_VAT_INCLUDED']; } } unset($arMinPrice['ORIG_VAT_INCLUDED']); $dblMinPrice = roundEx($dblMinPrice, CATALOG_VALUE_PRECISION); $arResult = array( 'PRICE' => $arMinPrice, 'DISCOUNT_PRICE' => $dblMinPrice, 'DISCOUNT' => array(), 'DISCOUNT_LIST' => array(), ); if (!empty($arMinDiscounts)) { reset($arMinDiscounts); $arResult['DISCOUNT'] = current($arMinDiscounts); $arResult['DISCOUNT_LIST'] = $arMinDiscounts; } foreach (GetModuleEvents("catalog", "OnGetOptimalPriceResult", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arResult))===false) return false; } return $arResult; }
//--> </script> <input name="filter_product_id" id="filter_product_id" value="<?php echo htmlspecialcharsbx($filter_product_id); ?> " size="5" type="text"> <input type="button" value="..." id="cat_prod_button" onClick="showProductSearchDialog()"><span id="product_name_alt" class="adm-filter-text-search"></span> </td> </tr> <tr> <td><?php echo GetMessage("SB_CURRENCY"); ?> :</td> <td align="left"> <?php echo CCurrency::SelectBox("filter_currency", $filter_currency, GetMessage("SB_ALL"), True, "", ""); ?> </td> </tr> <tr> <td><?php echo GetMessage("SB_USER_GROUP_ID"); ?> :</td> <td> <?php $z = CGroup::GetDropDownList("AND ID!=2"); echo SelectBoxM("filter_group_id[]", $z, $filter_group_id, "", false, 5); ?> </td> </tr>
{ $arParams['CURRENCY_ID'] = ''; } $arParams["PRICE_VAT_INCLUDE"] = $arParams["PRICE_VAT_INCLUDE"] !== "N"; $arConvertParams = array(); if ($arParams['CONVERT_CURRENCY'] == 'Y') { if (!CModule::IncludeModule('currency')) { $arParams['CONVERT_CURRENCY'] = 'N'; $arParams['CURRENCY_ID'] = ''; } else { $arCurrencyInfo = CCurrency::GetByID($arParams['CURRENCY_ID']); if (!(is_array($arCurrencyInfo) && !empty($arCurrencyInfo))) { $arParams['CONVERT_CURRENCY'] = 'N'; $arParams['CURRENCY_ID'] = ''; } else { $arParams['CURRENCY_ID'] = $arCurrencyInfo['CURRENCY']; $arConvertParams['CURRENCY_ID'] = $arCurrencyInfo['CURRENCY']; } } } $arResult['CONVERT_CURRENCY'] = $arConvertParams; $countSetDefaultItems = 0;
$height = intval($_GET["height"]); $max_height = COption::GetOptionInt("sale", "GRAPH_HEIGHT", 600); if ($height <= 0 || $height > $max_height) { $height = $max_height; } if ($mode != "money") { $mode = "count"; } $arColor = array("08738C", "C6B59C", "0000FF", "FF0000", "FFFF00", "F7C684", "8CD694", "9CADCE", "B584BD", "C684BD", "FF94C6", "BDE794", "F7949C", "7BCE6B", "FF6342", "E2F86B", "A5DE63", "42BD6B", "52BDA5", "F79473", "5AC6DE", "94D6C6", "9C52AD", "BD52AD", "9C94C6", "FF63AD", "FF6384", "FE881D", "FF9C21", "FFAD7B", "EFFF29", "7BCE6B", "42BD6B", "52C6AD", "6B8CBD", "3963AD", "F7298C", "A51800", "9CA510", "528C21", "689EB9", "217B29", "6B8CC6", "D6496C", "C6A56B", "00B0A4", "AD844A", "9710B4", "946331", "AD3908", "734210", "008400", "3EC19A", "28D7D7", "6B63AD", "A4C13E", "7BCE31", "A5DE94", "94D6E7", "9C8C73", "FF8C4A", "A7588B", "03CF45", "F7B54A", "808040", "947BBD", "840084", "737373", "C48322", "809254", "1E8259", "63C6DE", "46128D", "8080C0"); $arStatus = array(); $dbStatusList = CSaleStatus::GetList(array("SORT" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array("ID", "NAME", "SORT")); while ($arStatusList = $dbStatusList->GetNext()) { $arStatus[$arStatusList["ID"]] = $arStatusList["NAME"]; } $arCurrency = array(); $dbCur = CCurrency::GetList($b = "sort", $order1 = "asc", LANGUAGE_ID); while ($arCur = $dbCur->GetNext()) { $arCurrency[$arCur["CURRENCY"]] = $arCur["FULL_NAME"]; } $dbSite = CSite::GetList($by = "sort", $order = "desc", array("ACTIVE" => "Y")); while ($arSites = $dbSite->GetNext()) { $arSite[$arSites["LID"]] = $arSites["NAME"]; } $arFind = array("find_canceled" => $find_canceled, "find_allow_delivery" => $find_allow_delivery, "find_payed" => $find_payed, "find_all" => $find_all, "filter_by" => $filter_by, "mode" => $mode); foreach ($arCurrency as $k1 => $v1) { if (${"find_all_" . $k1} == "Y") { $arFind["find_all_" . $k1] = ${"find_all_" . $k1}; } if (${"find_payed_" . $k1} == "Y") { $arFind["find_payed_" . $k1] = ${"find_payed_" . $k1}; }
return false; } $saleModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("sale"); if (intval($arGadgetParams["ITEMS_COUNT"]) <= 0 || intval($arGadgetParams["ITEMS_COUNT"]) > 40) { $arGadgetParams["ITEMS_COUNT"] = 10; } if (strlen($arGadgetParams["SITE_ID"]) > 0) { $arGadgetParams["SITE_CURRENCY"] = CSaleLang::GetLangCurrency($arGadgetParams["SITE_ID"]); if (strlen($arGadgetParams["TITLE_STD"]) <= 0) { $rsSites = CSite::GetByID($arGadgetParams["SITE_ID"]); if ($arSite = $rsSites->GetNext()) { $arGadget["TITLE"] .= " / [" . $arSite["ID"] . "] " . $arSite["NAME"]; } } } else { $arGadgetParams["SITE_CURRENCY"] = CCurrency::GetBaseCurrency(); } $arGadgetParams["RND_STRING"] = randString(8); $arOrderStats = array(); $arOrders = array(); $arCurUsed = array(); if (strlen($arGadgetParams["SITE_ID"]) > 0) { $arFilterLID = array("LID" => $arGadgetParams["SITE_ID"]); } else { $arFilterLID = array(); } if ($saleModulePermissions != "W") { $arFilterPerms = array("STATUS_PERMS_GROUP_ID" => $GLOBALS["USER"]->GetUserGroupArray(), ">=STATUS_PERMS_PERM_VIEW" => "Y"); } else { $arFilterPerms = array(); }
} } } $sum = 0; $sumHtml = ""; $alertIntervalText = ""; $uptimeRate = 1; if ($bAlert) { if ($uptime !== "") { $uptime = explode("/", $uptime); if ($uptime[0] > 0 && $uptime[1] > 0) { $uptimeRate = $uptime[0] / $uptime[1]; } } if ($uptimeRate < 1 && $saleIncluded) { $base = CCurrency::GetBaseCurrency(); $r = CSaleOrder::GetList(array(), array(">=DATE_INSERT" => ConvertTimeStamp(time() - $monitoring->getInterval() * 24 * 3400, "SHORT")), array("LID", "CURRENCY", "SUM" => "PRICE")); while ($a = $r->fetch()) { $sum += CCurrencyRates::ConvertCurrency($a["PRICE"], $a["CURRENCY"], $base); } $sum *= 1 - $uptimeRate; if ($sum <= 0.0) { $sumHtml = number_format((1 - $uptimeRate) * 100, 2, '.', ' ') . "%"; $alertIntervalText = $intervalLang["uptime"][$monitoring->getInterval()]; } else { $sumHtml = CurrencyFormat($sum, $base); $alertIntervalText = $intervalLang["sale"][$monitoring->getInterval()]; } } elseif ($testCount === 1 && HasMessage("GD_BITRIXCLOUD_MONITOR_" . strtoupper($testAlert->getName()))) { $uptimeRate = 1; $resultText = FormatDate("ddiff", time(), $testAlert->getResult());
); if (isset($arCurrentValues['CONVERT_CURRENCY']) && $arCurrentValues['CONVERT_CURRENCY'] == 'Y') { $arCurrencyList = array(); $currencyIterator = CurrencyTable::getList(array( 'select' => array('CURRENCY'), 'order' => array('SORT' => 'ASC') )); while ($currency = $currencyIterator->fetch()) { $arCurrencyList[$currency['CURRENCY']] = $currency['CURRENCY']; } unset($currency, $currencyIterator); $arComponentParameters['PARAMETERS']['CURRENCY_ID'] = array( 'PARENT' => 'PRICES', 'NAME' => GetMessage('CP_BCCR_CURRENCY_ID'), 'TYPE' => 'LIST', 'VALUES' => $arCurrencyList, 'DEFAULT' => CCurrency::GetBaseCurrency(), "ADDITIONAL_VALUES" => "Y", ); } } if(!$OFFERS_IBLOCK_ID) { unset($arComponentParameters["PARAMETERS"]["OFFERS_FIELD_CODE"]); unset($arComponentParameters["PARAMETERS"]["OFFERS_PROPERTY_CODE"]); } ?>
public static function init() { IncludeModuleLangFile(__FILE__); if (!self::$fInit) { self::$fInit = true; self::$siteCookieId = md5('SALE_REPORT_SITE_ID'); // Initializing list of sites. $result = Bitrix\Main\SiteTable::getList(array('select' => array('LID', 'DEF', 'NAME'))); $i = 0; while ($row = $result->fetch()) { self::$sitelist[$row['LID']] = $row['NAME']; if (++$i === 1) { self::$defaultSiteId = $row['LID']; } else { if ($row['DEF'] === 'Y') { self::$defaultSiteId = $row['LID']; } } self::$weightOptions[$row['LID']] = array('unit' => COption::GetOptionString('sale', 'weight_unit', null, $row['LID']), 'koef' => COption::GetOptionInt('sale', 'weight_koef', null, $row['LID'])); } unset($i, $row, $result); // hack, add virtual ID field into StatusLang entity for filtering $statusEntity = Entity\Base::getInstance('\\Bitrix\\Sale\\Internals\\StatusLang'); if ($statusEntity instanceof \Bitrix\Main\Entity\Base) { $statusEntity->addField(array('data_type' => 'string', 'expression' => array('%s', 'STATUS_ID')), 'ID'); } unset($statusEntity); // hack, add virtual REPS_ORDER field into Shipment entity for filtering system records $shipmentEntity = Entity\Base::getInstance('\\Bitrix\\Sale\\Internals\\Shipment'); if ($shipmentEntity instanceof \Bitrix\Main\Entity\Base) { $shipmentEntity->addField(array('data_type' => 'Order', 'reference' => array('=ref.ID' => 'this.ORDER_ID', '!=this.SYSTEM' => array('?', 'Y'))), 'REPS_ORDER'); } unset($shipmentEntity); // Initializing list of statuses of orders. $result = Bitrix\Sale\Internals\StatusLangTable::getList(array('select' => array('STATUS_ID', 'NAME'), 'filter' => array('=LID' => LANGUAGE_ID))); while ($row = $result->fetch()) { self::$statuslist[$row['STATUS_ID']] = $row['NAME']; } unset($row, $result); self::$genders = array('M' => GetMessage('USER_MALE'), 'F' => GetMessage('USER_FEMALE')); // Initializing list of person types. $result = Bitrix\Sale\Internals\PersonTypeTable::getList(array('select' => array('ID', 'LID', 'NAME'))); while ($row = $result->fetch()) { self::$personTypes[$row['ID']] = array('LID' => $row['LID'], 'NAME' => $row['NAME']); } unset($row, $result); // Initializing list of pay systems of orders. $result = Bitrix\Sale\PaySystemTable::getList(array('select' => array('ID', 'LID', 'NAME'))); while ($row = $result->fetch()) { self::$paySystemList[$row['ID']] = array('value' => $row['NAME'], 'site_id' => $row['LID']); } unset($row, $result); // Initializing list of services and methods of delivery. $result = \Bitrix\Sale\Delivery\Services\Table::getList(array('select' => array('ID', 'NAME'))); while ($row = $result->fetch()) { self::$deliveryList[$row['ID']] = array('value' => $row['NAME'], 'site_id' => ''); } unset($row, $result); // Obtaining table of correspondences of iblocks to sites. $result = Bitrix\Iblock\IblockSiteTable::getList(); while ($row = $result->fetch()) { self::$iblockSite[$row['SITE_ID']][] = $row['IBLOCK_ID']; } unset($row, $result); // Obtaining the list of iblocks which are directories and filling // a property $catalogSections with sections of these units. $ent = new CCatalog(); $result = $ent->GetList(); while ($ibRow = $result->Fetch()) { // Obtaining list of sections of the catalog. self::$catalogs[] = $ibRow; $path = array(); $curLevel = $prevLevel = 0; $sections = CIBlockSection::GetTreeList(array('=IBLOCK_ID' => $ibRow['IBLOCK_ID'])); $row = null; while ($row = $sections->GetNext()) { // Formation of an array of identifiers of current and parent sections. $curLevel = $row['DEPTH_LEVEL']; for ($i = 0; $i <= $prevLevel - $curLevel; $i++) { array_pop($path); } array_push($path, $row['ID']); $prevLevel = $curLevel; self::$catalogSections[$row['ID']] = array('name' => ltrim(str_repeat(' . ', $curLevel) . $row['NAME']), 'path' => $path, 'catalog' => array('ID' => $ibRow['ID'], 'NAME' => $ibRow['NAME'])); } } unset($ent, $ibRow, $row, $sections, $result); // Initialization of the list of warehouses. $result = Bitrix\Catalog\StoreTable::getList(array('select' => array('ID', 'TITLE'))); while ($row = $result->fetch()) { self::$productStores[$row['ID']] = $row['TITLE']; } unset($row, $result); // Getting currencies $obj = new CCurrency(); $by = ''; $order = ''; $result = $obj->GetList($by, $order, LANGUAGE_ID); while ($row = $result->Fetch()) { self::$currencies[$row['CURRENCY']] = array('name' => $row['FULL_NAME']); } unset($row, $result, $obj, $by, $order); // Getting types of prices $obj = new CCatalogGroup(); $result = $obj->GetListEx(array('SORT'), array(), false, false, array('ID', 'NAME', 'BASE', 'NAME_LANG')); while ($row = $result->Fetch()) { self::$priceTypes[$row['ID']] = array('name' => empty($row['NAME_LANG']) ? $row['NAME'] : $row['NAME_LANG'], 'base' => $row['BASE'] === 'Y' ? true : false); } unset($row, $result, $obj); // Getting option, which means, it is necessary to display a fractional quantity of goods of no. self::$fDecimalQuant = COption::GetOptionString('sale', 'QUANTITY_FACTORIAL') == 'Y'; self::initOwners(); } }
__IncludeLang(GetLangFileName($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/currency/lang/", "/currencies_rates.php")); if ($CURRENCY_RIGHT == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $RATE = $RATE_CNT = ""; $strError = ""; $port = 80; if (!check_bitrix_sessid()) { $strError = GetMessage("ERROR_SESSID"); } if ($DATE_RATE == "" || !$DB->IsDate($DATE_RATE) || strlen($CURRENCY) < 0) { $strError = GetMessage("ERROR_DATE_RATE"); } if (strlen($strError) <= 0) { //currency $currantCurrancy = CCurrency::GetBaseCurrency(); //select host if ($currantCurrancy == "UAH") { //ukraina $host = "pfsoft.com.ua"; $path = "/service/currency/"; $QUERY_STR = "date=" . $DB->FormatDate($DATE_RATE, CLang::GetDateFormat("SHORT", $lang), "DMY"); } elseif ($currantCurrancy == "BYR") { //belarus $host = "www.nbrb.by"; $path = "/Services/XmlExRates.aspx"; $QUERY_STR = "ondate=" . $DB->FormatDate($DATE_RATE, CLang::GetDateFormat("SHORT", $lang), "Y-M-D"); } else { //all time russia $host = "www.cbr.ru"; $path = "/scripts/XML_daily.asp";
{ if(in_array("CATALOG_GROUP_".$CatalogGroups["ID"], $arSelectedFields)) { $arFilter["CATALOG_SHOP_QUANTITY_".$CatalogGroups["ID"]] = 1; $boolPriceInc = true; } } } if ($boolPriceInc) { $bCurrency = Loader::includeModule('currency'); if ($bCurrency) { $by1="sort"; $order1="asc"; $rsCurrencies = CCurrency::GetList($by1, $order1); while ($arCurrency = $rsCurrencies->GetNext()) { $arCurrencyList[] = $arCurrency; } } } unset($boolPriceInc); } $arVisibleColumnsMap = array(); foreach($arSelectedFields as $value) $arVisibleColumnsMap[$value] = true; // Getting list data if(array_key_exists("ELEMENT_CNT", $arVisibleColumnsMap))
?> <tr> <td><?php echo GetMessage("curr_rates_date1"); ?> :</td> <td> <?php echo CalendarPeriod("filter_period_from", $filter_period_from, "filter_period_to", $filter_period_to, "find_form", "Y"); ?> </td> </tr> <tr> <td><?php echo GetMessage("curr_rates_curr1"); ?> :</td> <td> <?php echo CCurrency::SelectBox("filter_currency", $filter_currency, GetMessage("curr_rates_all"), True, "", ""); ?> </td> </tr> <?php $filter->Buttons(array("table_id" => $sTableID, "url" => $APPLICATION->GetCurPage(), "form" => "find_form")); $filter->End(); ?> </form> <?php $lAdmin->DisplayList(); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
_<?php echo $ind; ?> " name="CAT_PRICE_<?php echo $arCatalogGroup["ID"]; ?> _<?php echo $ind; ?> " value="" size="10" OnChange="ptPriceChangeEx(this)"> </td> <td valign="top" align="center"> <?php echo CCurrency::SelectBox("CAT_CURRENCY_" . $arCatalogGroup["ID"] . "_" . $ind, "", GetMessage("VAL_BASE"), true, "ChangeCurrencyEx(this)", ($bReadOnly ? "disabled readonly" : "") . ' id="' . "CAT_CURRENCY_" . $arCatalogGroup["ID"] . "_" . $ind . '" '); ?> </td> </tr> <?php $arCatPricesExist[$ind][$arCatalogGroup['ID']] = 'N'; } ?> </tbody> </table> <input type="hidden" name="CAT_ROW_COUNTER_<?php echo $arCatalogGroup["ID"]; ?> " id="CAT_ROW_COUNTER_<?php echo $arCatalogGroup["ID"];