static function DoProcessOrder(&$arOrder, $paySystemId, &$arErrors) { if (intval($paySystemId) > 0) { $arPaySystem = array(); $dbPaySystem = CSalePaySystem::GetList(array("SORT" => "ASC", "PSA_NAME" => "ASC"), array("ACTIVE" => "Y", "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "PSA_HAVE_PAYMENT" => "Y")); while ($arPaySystem = $dbPaySystem->Fetch()) { if ($arPaySystem["ID"] == $paySystemId) { $arOrder["PAY_SYSTEM_ID"] = $paySystemId; $arOrder["PAY_SYSTEM_PRICE"] = CSalePaySystemsHelper::getPSPrice($arPaySystem, $arOrder["ORDER_PRICE"], $arOrder["PRICE_DELIVERY"], $arOrder["DELIVERY_LOCATION"]); break; } } if (empty($arPaySystem)) { $arErrors[] = array("CODE" => "CALCULATE", "TEXT" => GetMessage('SKGPS_PS_NOT_FOUND')); } } }
$dbPaySystem = CSalePaySystem::GetList( array("SORT" => "ASC", "PSA_NAME" => "ASC"), array( "ACTIVE" => "Y", "PERSON_TYPE_ID" => $str_PERSON_TYPE_ID, "PSA_HAVE_PAYMENT" => "Y" ) ); while ($arPaySystem = $dbPaySystem->Fetch()) { if ($arPaySystem["ID"] == $str_PAY_SYSTEM_ID) { $paySystemPrice = CSalePaySystemsHelper::getPSPrice( $arPaySystem, $tmpOrderPrice, $arDeliveryOrder["DELIVERY_DEFAULT_PRICE"], $locationID ); } } } $pricePay = SaleFormatCurrency(roundEx($paySystemPrice, SALE_VALUE_PRECISION), $str_CURRENCY); } $hidden = (filter_var($pricePay, FILTER_SANITIZE_NUMBER_INT) != "" && filter_var($pricePay, FILTER_SANITIZE_NUMBER_INT) != "0") ? "" : "style=\"display:none\""; ?> <tr id="PAY_SYSTEM_PRICE_BLOCK" <?php echo $hidden; ?> >
} $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])) //{ if (strlen($arUserResult["DELIVERY_ID"]) <= 0 || $arParams["DELIVERY_TO_PAYSYSTEM"] == "p2d" || CSaleDelivery2PaySystem::isPaySystemApplicable($arPaySystem["ID"], $arUserResult["DELIVERY_ID"])) { 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; $arResult["PAY_SYSTEM"][$arPaySystem["ID"]]["PRICE"] = CSalePaySystemsHelper::getPSPrice($arPaySystem, $arResult["ORDER_PRICE"], $arResult["DELIVERY_PRICE"], $arUserResult["DELIVERY_LOCATION"]); if (IntVal($arUserResult["PAY_SYSTEM_ID"]) == IntVal($arPaySystem["ID"]) || IntVal($arUserResult["PAY_SYSTEM_ID"]) <= 0 && $bFirst) { //$arPaySystem["CHECKED"] = "Y"; $arResult["PAY_SYSTEM"][$arPaySystem["ID"]]["CHECKED"] = "Y"; $arUserResult["PAY_SYSTEM_ID"] = $arPaySystem["ID"]; } $bFirst = false; } } if (IntVal($arUserResult["PAY_SYSTEM_ID"]) > 0 && empty($arResult["PAY_SYSTEM"][$arUserResult["PAY_SYSTEM_ID"]])) { $bF = true; foreach ($arResult["PAY_SYSTEM"] as $k => $v) { if ($bF) { $arResult["PAY_SYSTEM"][$k]["CHECKED"] = "Y"; $arUserResult["PAY_SYSTEM_ID"] = $arResult["PAY_SYSTEM"][$k]["ID"]; $bF = false;
public function getPaysystems($deliveryId = null) { if (empty($deliveryId)) { $deliveryId = $this->deliveryId; } if (empty($deliveryId)) { throw new \Exception('Для получения способов оплаты нужно указать службу доставки'); } $paySystems = array(); $paySystemFilter = array('ACTIVE' => 'Y', 'PERSON_TYPE_ID' => 1, 'PSA_HAVE_PAYMENT' => 'Y'); $res = \CSalePaySystem::GetList(array("SORT" => "ASC", "PSA_NAME" => "ASC"), $paySystemFilter); while ($paySystem = $res->Fetch()) { if (!\CSaleDelivery2PaySystem::isPaySystemApplicable($paySystem['ID'], $deliveryId)) { continue; } $check = \CSalePaySystemsHelper::checkPSCompability($paySystem['PSA_ACTION_FILE'], $this->getItemsRaw(), $this->getTotal(), $this->deliveryPrice, $this->location); if (!$check) { continue; } $paySystem['PRICE'] = \CSalePaySystemsHelper::getPSPrice($paySystem, $this->getTotal(), $this->deliveryPrice, $this->location); $paySystems[] = $paySystem; } return $paySystems; }