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; } }
?> " size="40"> </td> </tr> <tr> <td colspan="2" align="center" class="heading"> <?php echo Loc::getMessage('SALE_PSE_BIS_VAL_SETTINGS'); ?> </td> </tr> <tr> <td colspan="2" id="paysystem-business-value-settings" style="padding-top: 10px"> <?php if ($request->get('ACTION_FILE') !== null) { $data = PaySystem\Manager::getHandlerDescription($request->get('ACTION_FILE')); if ($id > 0) { $consumer = 'PAYSYSTEM_' . $id; try { BusinessValue::changeConsumer($consumer, $data); } catch (SystemException $e) { BusinessValue::addConsumer('PAYSYSTEM_' . $id, $data); } } else { $consumer = 'PAYSYSTEM_NEW'; if ($data) { BusinessValue::addConsumer($consumer, $data); } } $businessValueControl->renderMap(array('CONSUMER_KEY' => $consumer)); } elseif ($id > 0) {
$ptRes = \Bitrix\Sale\PersonTypeTable::getList(array('select' => array('NAME'), 'filter' => array('ID' => $restriction['PARAMS']['PERSON_TYPE_ID']))); while ($personType = $ptRes->fetch()) { $pTypes .= "<div>" . $personType['NAME'] . "</div>"; } } $row->AddField("PERSON_TYPES", $pTypes); $dbRestriction = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('select' => array('PARAMS'), 'filter' => array('SERVICE_ID' => $f_ID, 'SERVICE_TYPE' => \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::SERVICE_TYPE_PAYMENT, '=CLASS_NAME' => '\\Bitrix\\Sale\\Services\\PaySystem\\Restrictions\\Site'))); $pSite = ''; if ($restriction = $dbRestriction->fetch()) { $siteRes = \Bitrix\Main\SiteTable::getList(array('select' => array('NAME', 'LID'), 'filter' => array('LID' => $restriction['PARAMS']['SITE_ID'], 'LANGUAGE_ID' => $context->getLanguage()))); while ($site = $siteRes->fetch()) { $pSite .= "<div>" . $site['NAME'] . " (" . $site['LID'] . ")</div>"; } } $row->AddField("LID", $pSite); $description = \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($f_ACTION_FILE); $row->AddField("ACTION_FILES", $description['NAME']); $arActions = array(array("ICON" => "edit", "TEXT" => GetMessage("SALE_EDIT"), "TITLE" => GetMessage("SALE_EDIT_DESCR"), "ACTION" => $lAdmin->ActionRedirect("sale_pay_system_edit.php?ID=" . $f_ID . "&lang=" . $context->getLanguage()), "DEFAULT" => true)); if ($saleModulePermissions >= "W") { $arActions[] = array("SEPARATOR" => true); $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("SALE_DELETE"), "TITLE" => GetMessage("SALE_DELETE_DESCR"), "ACTION" => "if(confirm('" . GetMessage('SALE_CONFIRM_DEL_MESSAGE') . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete")); } $row->AddActions($arActions); } $lAdmin->AddFooter(array(array("title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $dbRes->SelectedRowsCount()), array("counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0"))); if ($saleModulePermissions == "W") { $lAdmin->AddGroupActionTable(array("delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"), "activate" => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"), "deactivate" => GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"))); $aContext = array(array("TEXT" => GetMessage("SPSAN_ADD_NEW"), "TITLE" => GetMessage("SPSAN_ADD_NEW_ALT"), "LINK" => "sale_pay_system_edit.php?lang=" . LANG, "ICON" => "btn_new")); $lAdmin->AddAdminContextMenu($aContext); } $lAdmin->CheckListMode();