} elseif ($id <= 0) { $image = '/bitrix/images/sale/sale_payments/' . $request->get('ACTION_FILE') . '.png'; if (\Bitrix\Main\IO\File::isFileExists($documentRoot . $image)) { $fields['LOGOTIP'] = CFile::MakeFileArray($image); $fields['LOGOTIP']['MODULE_ID'] = "sale"; CFile::SaveForDB($fields, 'LOGOTIP', 'sale/paysystem/logotip'); } } $data = PaySystem\Manager::getHandlerDescription($request->get('ACTION_FILE')); if ($id > 0) { $result = PaySystemActionTable::update($id, $fields); if (!$result->isSuccess()) { $errorMessage .= join(',', $result->getErrorMessages()) . ".<br>"; } } else { $result = PaySystemActionTable::add($fields); if (!$result->isSuccess()) { $errorMessage .= join(',', $result->getErrorMessages()); } else { $id = $result->getId(); if ($id > 0) { $fields = array('PARAMS' => serialize(array('BX_PAY_SYSTEM_ID' => $id)), 'PAY_SYSTEM_ID' => $id); $result = PaySystemActionTable::update($id, $fields); if (!$result->isSuccess()) { $errorMessage .= join(',', $result->getErrorMessages()); } $service = PaySystem\Manager::getObjectById($id); $currency = $service->getCurrency(); if ($currency) { $params = array('SERVICE_ID' => $id, 'SERVICE_TYPE' => Restrictions\Manager::SERVICE_TYPE_PAYMENT, 'PARAMS' => array('CURRENCY' => $currency)); Restrictions\Manager::getClassesList();
/** * @return int */ public static function add() { $id = self::getId(false); if ($id > 0) { return $id; } $result = 0; $res = PaySystemTable::add(array('NAME' => Loc::getMessage('ORDER_PS_INNER_NAME'), 'DESCRIPTION' => Loc::getMessage('ORDER_PS_INNER_DESCRIPTION'), 'SORT' => 10, 'LID' => '', 'CURRENCY' => '')); if ($res->isSuccess()) { $cacheManager = \Bitrix\Main\Application::getInstance()->getManagedCache(); $cacheManager->set(self::CACHE_ID, $res->getId()); $res = PaySystemActionTable::add(array('PAY_SYSTEM_ID' => $res->getId(), 'PERSON_TYPE_ID' => 0, 'NAME' => Loc::getMessage('ORDER_PS_INNER_NAME'), 'ACTION_FILE' => self::ACTION_FILE_TEXT)); if ($res->isSuccess()) { $result = $res->getId(); } } return $result; }
function Add($fields) { if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y') { if (!CSalePaySystemAction::CheckFields("ADD", $fields)) { return false; } if (isset($fields['ACTION_FILE'])) { $map = self::getOldToNewHandlersMap(); if (isset($map[$fields['ACTION_FILE']])) { $fields['ACTION_FILE'] = $map[$fields['ACTION_FILE']]; } } $fields['PSA_NAME'] = $fields['NAME']; if (array_key_exists("LOGOTIP", $fields) && is_array($fields["LOGOTIP"])) { $fields["LOGOTIP"]["MODULE_ID"] = "sale"; } CFile::SaveForDB($fields, "LOGOTIP", "sale/paysystem/logotip"); if (isset($fields['PAY_SYSTEM_ID']) && $fields['PAY_SYSTEM_ID'] > 0) { $dbRes = PaySystemActionTable::getById($fields['PAY_SYSTEM_ID']); $data = $dbRes->fetch(); if ($data['ACTION_FILE'] != '') { $result = PaySystemActionTable::add($fields); } else { $result = PaySystemActionTable::update($fields['PAY_SYSTEM_ID'], $fields); } } else { $result = PaySystemActionTable::add($fields); } if ($result->isSuccess()) { if ($fields['PARAMS']) { $params = unserialize($fields['PARAMS']); if (!isset($params['BX_PAY_SYSTEM_ID'])) { $params['BX_PAY_SYSTEM_ID'] = array('TYPE' => '', 'VALUE' => $result->getId()); PaySystemActionTable::update($result->getId(), array('PARAMS' => serialize($params))); $consumers = \Bitrix\Sale\BusinessValue::getConsumers(); if (!isset($consumers['PAYSYSTEM_' . $result->getId()])) { \Bitrix\Sale\BusinessValue::addConsumer('PAYSYSTEM_' . $result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE'])); } else { \Bitrix\Sale\BusinessValue::changeConsumer('PAYSYSTEM_' . $result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE'])); } } $params = self::prepareParamsForBusVal($result->getId(), $fields); foreach ($params as $item) { \Bitrix\Sale\BusinessValue::setMapping($item['CODE'], $item['CONSUMER'], $item['PERSON_TYPE_ID'], $item['MAP']); } } if (isset($fields['PERSON_TYPE_ID']) && $fields['PERSON_TYPE_ID'] > 0) { $fields = array("SERVICE_ID" => $result->getId(), "SERVICE_TYPE" => \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::SERVICE_TYPE_PAYMENT, "SORT" => 100, "PARAMS" => array('PERSON_TYPE_ID' => array($fields['PERSON_TYPE_ID']))); \Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::save($fields); } return $result->getId(); } return false; } else { global $DB; $arFields = $fields; if (!CSalePaySystemAction::CheckFields("ADD", $arFields)) { return false; } if (array_key_exists("LOGOTIP", $arFields) && is_array($arFields["LOGOTIP"])) { $arFields["LOGOTIP"]["MODULE_ID"] = "sale"; } CFile::SaveForDB($arFields, "LOGOTIP", "sale/paysystem/logotip"); $arInsert = $DB->PrepareInsert("b_sale_pay_system_action", $arFields); $strSql = "INSERT INTO b_sale_pay_system_action(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); return $ID; } }