foreach ($val[$arUserResult["DELIVERY_ID"]] as $v) { $arFilter["ID"][] = $v; } } elseif (IntVal($val[$arUserResult["DELIVERY_ID"]]) > 0) { $arFilter["ID"][] = $val[$arUserResult["DELIVERY_ID"]]; } } } if ($arParams["DELIVERY_TO_PAYSYSTEM"] == "p2d") { $arD2P = array(); } if ($arParams["DELIVERY_TO_PAYSYSTEM"] == "d2p" && !empty($arUserResult['DELIVERY_ID']) || $arParams["DELIVERY_TO_PAYSYSTEM"] == "p2d") { if ($arUserResult["PREPAYMENT_MODE"] && IntVal($arUserResult["PAY_SYSTEM_ID"]) > 0) { $arFilter["ID"] = $arUserResult["PAY_SYSTEM_ID"]; } $preparedPSData = \Bitrix\Sale\Internals\DeliveryPaySystemTable::prepareData(array(), \Bitrix\Sale\Internals\DeliveryPaySystemTable::ENTITY_TYPE_PAYSYSTEM); $bFirst = true; $dbPaySystem = CSalePaySystem::GetList(array("SORT" => "ASC", "PSA_NAME" => "ASC"), $arFilter); while ($arPaySystem = $dbPaySystem->Fetch()) { //if (count($arD2P[$delivery]) <= 0 || in_array($arPaySystem["ID"], $arD2P[$delivery])) //{ $checkByDelivery = in_array($arUserResult["DELIVERY_ID"], \Bitrix\Sale\Internals\DeliveryPaySystemTable::getLinks($arPaySystem["ID"], \Bitrix\Sale\Internals\DeliveryPaySystemTable::ENTITY_TYPE_PAYSYSTEM, $preparedPSData)); if (strlen($arUserResult["DELIVERY_ID"]) <= 0 || $arParams["DELIVERY_TO_PAYSYSTEM"] == "p2d" || $checkByDelivery) { if (!CSalePaySystemsHelper::checkPSCompability($arPaySystem["PSA_ACTION_FILE"], $arOrder, $arResult["ORDER_PRICE"], $arResult["DELIVERY_PRICE"], $arUserResult["DELIVERY_LOCATION"])) { continue; } if ($arPaySystem["PSA_LOGOTIP"] > 0) { $arPaySystem["PSA_LOGOTIP"] = CFile::GetFileArray($arPaySystem["PSA_LOGOTIP"]); } $arPaySystem["PSA_NAME"] = htmlspecialcharsEx($arPaySystem["PSA_NAME"]); $arResult["PAY_SYSTEM"][$arPaySystem["ID"]] = $arPaySystem;
public static function prepareData(array $deliveryIds) { if (empty($deliveryIds)) { return; } self::$preparedData = \Bitrix\Sale\Internals\DeliveryPaySystemTable::prepareData($deliveryIds, DeliveryPaySystemTable::ENTITY_TYPE_DELIVERY); }