GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); Loc::loadMessages(__FILE__); $lheStyle = ' '; Asset::getInstance()->addString($lheStyle); Asset::getInstance()->addJs("/bitrix/js/sale/pay_system.js"); \Bitrix\Sale\Delivery\Restrictions\Manager::getClassesList(); $instance = Application::getInstance(); $context = $instance->getContext(); $request = $context->getRequest(); $server = $context->getServer(); $documentRoot = Application::getDocumentRoot(); $id = (int)$request->get('ID'); if (CModule::IncludeModule("fileman")) $bFilemanModuleInst = true; $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("SPSN_TAB_PAYSYS"), "ICON" => "sale", "TITLE" => GetMessage("SPSN_TAB_PAYSYS_DESCR"), ) ); if ($id > 0 && $request->getRequestMethod() !== 'POST') { $aTabs[] = array( "DIV" => "edit3", "TAB" => GetMessage("SPS_PAY_SYSTEM_RESTRICTION"), "ICON" => "sale", "TITLE" => GetMessage("SPS_PAY_SYSTEM_RESTRICTION_DESC"), ); } $tabControl = new CAdminTabControl("tabControl", $aTabs); $errorMessage = ''; $businessValueControl = new BusinessValueControl('PAYSYSTEM'); if ($server->getRequestMethod() == "POST" && ($request->get('save') !== null || $request->get('apply') !== null) && $saleModulePermissions == "W" && check_bitrix_sessid()) { $name = trim($request->get('NAME')); if ($name == '') $errorMessage .= Loc::getMessage("ERROR_NO_NAME")."
"; if ($request->get('ACTION_FILE') == '') $errorMessage .= Loc::getMessage("ERROR_NO_ACTION_FILE")."
"; $sort = (int)$request->get('SORT'); if ($sort <= 0) $sort = 100; $actionFile = $request->get('ACTION_FILE'); if (!$actionFile) $errorMessage = Loc::getMessage('SALE_PSE_ERROR_ACTION_SAVE'); if ($errorMessage === '') { $fields = array( "NAME" => $name, "PSA_NAME" => $request->get('PSA_NAME'), "ACTIVE" => ($request->get('ACTIVE') != 'Y') ? 'N' : $request->get('ACTIVE'), "CODE" => $request->get('CODE'), "NEW_WINDOW" => ($request->get('NEW_WINDOW') != 'Y') ? 'N' : $request->get('NEW_WINDOW'), "ALLOW_EDIT_PAYMENT" => ($request->get('ALLOW_EDIT_PAYMENT') != 'Y') ? 'N' : $request->get('ALLOW_EDIT_PAYMENT'), "IS_CASH" => (!in_array($request->get('IS_CASH'), array('Y', 'A'))) ? 'N' : $request->get('IS_CASH'), "SORT" => $sort, "ENCODING" => $request->get('ENCODING'), "DESCRIPTION" => $request->get('DESCRIPTION'), "ACTION_FILE" => $actionFile ); if ($request->get('PS_MODE')) $fields['PS_MODE'] = $request->get('PS_MODE'); $path = PaySystem\Manager::getPathToHandlerFolder($actionFile); if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$path.'/handler.php')) { require_once $documentRoot.$path.'/handler.php'; $className = PaySystem\Manager::getClassNameFromPath($path); $fields['HAVE_PAYMENT'] = 'Y'; if (is_subclass_of($className, '\Bitrix\Sale\PaySystem\IPrePayable')) $fields['HAVE_PREPAY'] = 'Y'; if (is_subclass_of($className, '\Bitrix\Sale\PaySystem\ServiceHandler')) $fields['HAVE_RESULT_RECEIVE'] = 'Y'; if (is_subclass_of($className, '\Bitrix\Sale\PaySystem\IPayable')) $fields['HAVE_PRICE'] = 'Y'; } else { if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$actionFile."/pre_payment.php")) $fields["HAVE_PREPAY"] = "Y"; if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$actionFile."/result.php")) $fields["HAVE_RESULT"] = "Y"; if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$actionFile."/action.php")) $fields["HAVE_ACTION"] = "Y"; if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$actionFile."/payment.php")) $fields["HAVE_PAYMENT"] = "Y"; if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$actionFile."/result_rec.php")) $fields["HAVE_RESULT_RECEIVE"] = "Y"; } if($request->get('TARIF') !== null) { if ($path !== null) { if (\Bitrix\Main\IO\File::isFileExists($documentRoot.$path.'/handler.php')) { require_once $documentRoot.$path.'/handler.php'; $className = PaySystem\Manager::getClassNameFromPath($actionFile); $fields["TARIF"] = $className::prepareToField($request->get('TARIF')); } } else { $fields["TARIF"] = CSalePaySystemsHelper::prepareTarifForSaving($actionFile, $request->get('TARIF')); } } $isConsumerChange = $request->get('ACTION_FILE') != $request->get('PRIOR_ACTION_FILE'); $file = $request->getFile('LOGOTIP'); if ($file !== null && $file["error"] == 0) { $imageFileError = CFile::CheckImageFile($file); if ($imageFileError === null) { $fields['LOGOTIP'] = $file; $fields['LOGOTIP']['del'] = trim($request->get("LOGOTIP_del")); $fields['LOGOTIP']['MODULE_ID'] = "sale"; CFile::SaveForDB($fields, 'LOGOTIP', 'sale/paysystem/logotip'); } else { $errorMessage .= $imageFileError.'.
'; } } elseif ($request->get("LOGOTIP_del") !== null && $request->get("LOGOTIP_del") == 'Y') { $fields['LOGOTIP'] = 0; } 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()).".
"; } 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 = new PaySystem\Service($fields); $currency = $service->getCurrency(); if ($currency) { $params = array( 'SERVICE_ID' => $id, 'SERVICE_TYPE' => Restrictions\Manager::SERVICE_TYPE_PAYMENT, 'PARAMS' => array('CURRENCY' => $currency) ); Restrictions\Manager::getClassesList(); $saveResult = \Bitrix\Sale\Services\PaySystem\Restrictions\Currency::save($params); if (!$saveResult->isSuccess()) $errorMessage .= Loc::getMessage('SALE_PSE_ERROR_RSRT_CURRENCY_SAVE'); } } } } if ($errorMessage === '') { if ($isConsumerChange) { $priorActionFile = $request->get('PRIOR_ACTION_FILE'); if (empty($priorActionFile)) BusinessValue::addConsumer('PAYSYSTEM_NEW', $data); else BusinessValue::changeConsumer('PAYSYSTEM_'.$id, $data); } if ($businessValueControl->setMapFromPost()) { if ($isConsumerChange && empty($priorActionFile)) $businessValueControl->changeConsumerKey('PAYSYSTEM_NEW', 'PAYSYSTEM_'.$id); if (!$businessValueControl->saveMap()) $errorMessage .= Loc::getMessage('SALE_PSE_ERROR_SET_BIZVAL_MAP'); } else { $errorMessage .= Loc::getMessage('SALE_PSE_ERROR_SET_BIZVAL_MAP'); } } } if ($errorMessage === '') { if (strlen($request->get('apply')) > 0) LocalRedirect("sale_pay_system_edit.php?ID=".$id."&lang=".$context->getLanguage()."&".$tabControl->ActiveTabParam()); else LocalRedirect("sale_pay_system.php?lang=".$context->getLanguage()); } } $paySystem = array(); if ($id > 0) { $dbRes = \Bitrix\Sale\PaySystem\Manager::getList( array( 'filter' => array('ID' => $id), 'order' => array("SORT" => "ASC") ) ); $paySystem = $dbRes->fetch(); } require_once($documentRoot."/bitrix/modules/sale/prolog.php"); $APPLICATION->SetTitle(($id > 0) ? Loc::getMessage("SALE_EDIT_RECORD", array("#ID#" => $id)) : Loc::getMessage("SALE_NEW_RECORD")); $restrictionsHtml = ''; if ($id > 0 && $request->getRequestMethod() !== 'POST') { ob_start(); require_once($documentRoot."/bitrix/modules/sale/admin/pay_system_restrictions_list.php"); $restrictionsHtml = ob_get_contents(); ob_end_clean(); } require($documentRoot."/bitrix/modules/main/include/prolog_admin_after.php"); ?> Loc::getMessage("SPSN_2FLIST"), "LINK" => "/bitrix/admin/sale_pay_system.php?lang=".$context->getLanguage().GetFilterParams("filter_"), "ICON" => "btn_list" ) ); if ($id > 0 && $saleModulePermissions >= "W") { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array( "TEXT" => Loc::getMessage("SPSN_NEW_PAYSYS"), "LINK" => "/bitrix/admin/sale_pay_system_edit.php?lang=".$context->getLanguage().GetFilterParams("filter_"), "ICON" => "btn_new" ); $aMenu[] = array( "TEXT" => Loc::getMessage("SPSN_DELETE_PAYSYS"), "LINK" => "javascript:if(confirm('".Loc::getMessage("SPSN_DELETE_PAYSYS_CONFIRM")."')) window.location='/bitrix/admin/sale_pay_system.php?action=delete&ID[]=".$id."&lang=".$context->getLanguage()."&".bitrix_sessid_get()."#tb';", "WARNING" => "Y", "ICON" => "btn_delete" ); } $contextMenu = new CAdminContextMenu($aMenu); $contextMenu->Show(); ?> $errorMessage, "TYPE"=>"ERROR", "MESSAGE"=>Loc::getMessage("SPSN_ERROR"), "HTML"=>true));?>