GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile(__FILE__); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php"); if (isset($_REQUEST["https_check"]) && $_REQUEST["https_check"] == "Y" && check_bitrix_sessid()) { $ob = new CHTTP(); $ob->http_timeout = 10; $res = @$ob->Get("https://".$_SERVER["SERVER_NAME"]."/bitrix/tools/sale_ps_result.php"); if (!$res || $ob->status != 200) { $res = "error"; $text = GetMessage("SPS_HTTPS_CHECK_ERROR"); } else { $res = "ok"; $text = GetMessage("SPS_HTTPS_CHECK_SUCCESS"); } header("Content-Type: application/x-javascript; charset=".LANG_CHARSET); echo CUtil::PhpToJSObject(array("status" => $res, "text" => $text)); die(); } $lheStyle = ' '; $APPLICATION->AddHeadString($lheStyle, true, true); $ID = IntVal($ID); ClearVars(); ClearVars("f_"); $path2SystemPSFiles = "/bitrix/modules/sale/payment/"; $path2UserPSFiles = COption::GetOptionString("sale", "path2user_ps_files", BX_PERSONAL_ROOT."/php_interface/include/sale_payment/"); CheckDirPath($_SERVER["DOCUMENT_ROOT"].$path2UserPSFiles); if (CModule::IncludeModule("fileman")) $bFilemanModuleInst = true; $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("SPSN_TAB_PAYSYS"), "ICON" => "sale", "TITLE" => GetMessage("SPSN_TAB_PAYSYS_DESCR"), ), array( "DIV" => "edit2", "TAB" => GetMessage("PPE_PERSON_TYPES"), "ICON" => "sale", "TITLE" => GetMessage("PPE_PERSON_TYPES"), ), array( "DIV" => "edit3", "TAB" => GetMessage("SPS_DELIVERY_HANDLERS"), "ICON" => "sale", "TITLE" => GetMessage("SPS_DELIVERY_HANDLERS_DESC"), ), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $errorMessage = ""; $bInitVars = false; if ($_SERVER["REQUEST_METHOD"] == "POST" && (strlen($save) > 0 || strlen($apply) > 0) && $saleModulePermissions == "W" && check_bitrix_sessid()) { $NAME = Trim($NAME); if (strlen($NAME) <= 0) $errorMessage .= GetMessage("ERROR_NO_NAME")."
"; $ACTIVE = (($ACTIVE == "Y") ? "Y" : "N"); $SORT = ((IntVal($SORT) > 0) ? IntVal($SORT) : 100); if (strlen($errorMessage) <= 0) { $arFields = array( "NAME" => $NAME, "ACTIVE" => $ACTIVE, "SORT" => $SORT, "DESCRIPTION" => $DESCRIPTION ); if(strlen($LID) > 0) $arFields["LID"] = $LID; if(strlen($CURRENCY) > 0) $arFields["CURRENCY"] = $CURRENCY; if ($ID > 0) { if (!CSalePaySystem::Update($ID, $arFields)) { if ($ex = $APPLICATION->GetException()) $errorMessage .= $ex->GetString().".
"; else $errorMessage .= GetMessage("ERROR_EDIT_PAY_SYS").".
"; } } else { $ID = CSalePaySystem::Add($arFields); if ($ID <= 0) { if ($ex = $APPLICATION->GetException()) $errorMessage .= $ex->GetString().".
"; else $errorMessage .= GetMessage("ERROR_ADD_PAY_SYS").".
"; } } } if (strlen($errorMessage) <= 0) { if($ID > 0) \Bitrix\Sale\Internals\DeliveryPaySystemTable::setLinks( $ID, \Bitrix\Sale\Internals\DeliveryPaySystemTable::ENTITY_TYPE_PAYSYSTEM, isset($_POST["DELIVERY_HANDLERS"]) && is_array($_POST["DELIVERY_HANDLERS"]) ? $_POST["DELIVERY_HANDLERS"] : array() ); $arPersonTypes = array(); $dbPersonType = CSalePersonType::GetList( array("SORT" => "ASC", "NAME" => "ASC"), Array() ); while ($arPersonType = $dbPersonType->GetNext()) { $errorMessage1 = ""; $arPersonTypes[] = IntVal($arPersonType["ID"]); $actionID = 0; $dbPSAction = CSalePaySystemAction::GetList( array(), array("PAY_SYSTEM_ID" => $ID, "PERSON_TYPE_ID" => $arPersonType["ID"]) ); if ($arPSAction = $dbPSAction->Fetch()) { $actionID = IntVal($arPSAction["ID"]); } if (${"PS_EXISTS_".$arPersonType["ID"]} != "Y") { if ($actionID > 0) { if (!CSalePaySystemAction::Delete($actionID)) { if ($ex = $APPLICATION->GetException()) $errorMessage1 .= $ex->GetString().".
"; else $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_ERROR_DELETE")).".
"; } } } else { ${"NAME_".$arPersonType["ID"]} = Trim(${"NAME_".$arPersonType["ID"]}); if (strlen(${"NAME_".$arPersonType["ID"]}) <= 0) $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_EMPTY_NAME")).".
"; ${"ACTION_FILE_".$arPersonType["ID"]} = Trim(${"ACTION_FILE_".$arPersonType["ID"]}); if (strlen(${"ACTION_FILE_".$arPersonType["ID"]}) <= 0) $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_EMPTY_SCRIPT")).".
"; if (strlen(${"ACTION_FILE_".$arPersonType["ID"]}) > 0) { ${"ACTION_FILE_".$arPersonType["ID"]} = str_replace("\\", "/", ${"ACTION_FILE_".$arPersonType["ID"]}); while (substr(${"ACTION_FILE_".$arPersonType["ID"]}, strlen(${"ACTION_FILE_".$arPersonType["ID"]}) - 1, 1) == "/") ${"ACTION_FILE_".$arPersonType["ID"]} = substr(${"ACTION_FILE_".$arPersonType["ID"]}, 0, strlen(${"ACTION_FILE_".$arPersonType["ID"]}) - 1); $pathToAction = $_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}; if (!file_exists($pathToAction)) $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_NO_SCRIPT")).".
"; } if (strlen($errorMessage1) <= 0) { $arParams = array(); if (strlen(${"PS_ACTION_FIELDS_LIST_".$arPersonType["ID"]}) > 0) { $arActFields = explode(",", ${"PS_ACTION_FIELDS_LIST_".$arPersonType["ID"]}); $arPsActFields = LocalGetPSActionParams($pathToAction.'/.description.php'); $arPSActionParams = CSalePaySystemAction::UnSerializeParams($arPSAction["PARAMS"]); foreach ($arActFields as $val) { $val = Trim($val); $fieldName = $val."_".$arPersonType["ID"]; if (empty($arPsActFields[$val])) continue; $typeTmp = ${"TYPE_".$fieldName}; $valueTmp = ${"VALUE1_".$fieldName}; if (strlen($typeTmp) <= 0) $valueTmp = ${"VALUE2_".$fieldName}; if ($arPsActFields[$val]['TYPE'] == 'FILE' && $typeTmp != 'FILE') continue; if ($typeTmp == 'FILE') { $valueTmp = array(); if (array_key_exists("VALUE1_".$fieldName, $_FILES)) { if ($_FILES["VALUE1_".$fieldName]["error"] == 0) { $imageFileError = CFile::CheckImageFile($_FILES["VALUE1_".$fieldName]); if (is_null($imageFileError)) $valueTmp = $_FILES["VALUE1_".$fieldName]; else $errorMessage1 .= $imageFileError . ".
"; } } if (trim($_POST[$fieldName."_del"]) == 'Y') { if (intval($arPSActionParams[$val]['VALUE']) == 0) continue; $valueTmp['old_file'] = $arPSActionParams[$val]['VALUE']; $valueTmp['del'] = trim($_POST[$fieldName."_del"]); } if (empty($valueTmp)) { $typeTmp = $arPSActionParams[$val]['TYPE']; $valueTmp = $arPSActionParams[$val]['VALUE']; } } $arParams[$val] = array( "TYPE" => $typeTmp, "VALUE" => $valueTmp ); if ($arParams[$val]['TYPE'] == 'FILE' && is_array($arParams[$val]['VALUE'])) { $arParams[$val]['VALUE']['MODULE_ID'] = 'sale'; CFile::SaveForDB($arParams[$val], 'VALUE', 'sale/paysystem/field'); } } } if(isset($_POST["TARIF_".$arPersonType["ID"]])) $arTarif = $_POST["TARIF_".$arPersonType["ID"]]; else $arTarif = array(); //add logotip $arPicture = array(); if(array_key_exists("LOGOTIP_".$arPersonType["ID"], $_FILES) && $_FILES["LOGOTIP_".$arPersonType["ID"]]["error"] == 0) $arPicture = $_FILES["LOGOTIP_".$arPersonType["ID"]]; elseif ($actionID <= 0) { $logo = ""; if (file_exists($_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}."/logo.png")) $logo = $_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}."/logo.png"; elseif (file_exists($_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}."/logo.jpg")) $logo = $_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}."/logo.jpg"; elseif (file_exists($_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}."/logo.gif")) $logo = $_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}."/logo.gif"; $arPicture = CFile::MakeFileArray($logo); } $arPicture["old_file"] = $arPSAction["LOGOTIP"]; $arPicture["del"] = trim($_POST["LOGOTIP_".$arPersonType["ID"]."_del"]); $arFields = array( "PAY_SYSTEM_ID" => $ID, "PERSON_TYPE_ID" => $arPersonType["ID"], "NAME" => ${"NAME_".$arPersonType["ID"]}, "ACTION_FILE" => ${"ACTION_FILE_".$arPersonType["ID"]}, "NEW_WINDOW" => ( (${"NEW_WINDOW_".$arPersonType["ID"]}=="Y") ? "Y" : "N" ), "PARAMS" => CSalePaySystemAction::SerializeParams($arParams), "HAVE_PREPAY" => "N", "HAVE_RESULT" => "N", "HAVE_ACTION" => "N", "HAVE_PAYMENT" => "N", "HAVE_RESULT_RECEIVE" => "N", "ENCODING" => trim(${"ENCODING_".$arPersonType["ID"]}), "LOGOTIP" => $arPicture ); if(!empty($arTarif) && is_array($arTarif)) $arFields["TARIF"] = CSalePaySystemsHelper::prepareTarifForSaving($arFields["ACTION_FILE"], $arTarif); $pathToAction = $_SERVER["DOCUMENT_ROOT"].${"ACTION_FILE_".$arPersonType["ID"]}; $pathToAction = str_replace("\\", "/", $pathToAction); while (substr($pathToAction, strlen($pathToAction) - 1, 1) == "/") $pathToAction = substr($pathToAction, 0, strlen($pathToAction) - 1); if (file_exists($pathToAction)) { if (is_dir($pathToAction)) { if (file_exists($pathToAction."/pre_payment.php")) $arFields["HAVE_PREPAY"] = "Y"; if (file_exists($pathToAction."/result.php")) $arFields["HAVE_RESULT"] = "Y"; if (file_exists($pathToAction."/action.php")) $arFields["HAVE_ACTION"] = "Y"; if (file_exists($pathToAction."/payment.php")) $arFields["HAVE_PAYMENT"] = "Y"; if (file_exists($pathToAction."/result_rec.php")) $arFields["HAVE_RESULT_RECEIVE"] = "Y"; } else { $arFields["HAVE_PAYMENT"] = "Y"; } } if (strlen($errorMessage1) <= 0) { if ($actionID > 0) { if (!CSalePaySystemAction::Update($actionID, $arFields)) { if ($ex = $APPLICATION->GetException()) $errorMessage1 .= $ex->GetString().".
"; else $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_ERROR_UPDATE")).".
"; } } else { if (!CSalePaySystemAction::Add($arFields)) { if ($ex = $APPLICATION->GetException()) $errorMessage1 .= $ex->GetString().".
"; else $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_ERROR_ADD")).".
"; } } } } } $errorMessage .= $errorMessage1; } $dbPSAction = CSalePaySystemAction::GetList( array(), array("PAY_SYSTEM_ID" => $ID, "!PERSON_TYPE_ID" => $arPersonTypes) ); while ($arPSAction = $dbPSAction->Fetch()) { if (!CSalePaySystemAction::Delete($arPSAction["ID"])) { if ($ex = $APPLICATION->GetException()) $errorMessage1 .= $ex->GetString().".
"; else $errorMessage1 .= str_replace("#PLAT#", $arPersonType["NAME"], GetMessage("SPS_ERROR_DELETE")).".
"; } } } if (strlen($errorMessage) > 0) $bInitVars = True; if (strlen($errorMessage) <= 0) { if (strlen($apply) > 0) LocalRedirect("sale_pay_system_edit.php?ID=".$ID."&lang=".LANG."&".$tabControl->ActiveTabParam()); else LocalRedirect("sale_pay_system.php?lang=".LANG); } } if ($ID > 0) { $dbPaySystem = CSalePaySystem::GetList(array("SORT" => "ASC"), array("ID" => $ID)); $dbPaySystem->ExtractFields("str_"); } if ($bInitVars) { $DB->InitTableVarsForEdit("b_sale_pay_system", "", "str_"); } require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php"); $APPLICATION->SetTitle(($ID > 0) ? GetMessage("SALE_EDIT_RECORD", array("#ID#" => $ID)) : GetMessage("SALE_NEW_RECORD")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); /*********************************************************************/ /******************** BODY *****************************************/ /*********************************************************************/ ?> GetMessage("SPSN_2FLIST"), "LINK" => "/bitrix/admin/sale_pay_system.php?lang=".LANG.GetFilterParams("filter_"), "ICON" => "btn_list" ) ); if ($ID > 0 && $saleModulePermissions >= "W") { $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array( "TEXT" => GetMessage("SPSN_NEW_PAYSYS"), "LINK" => "/bitrix/admin/sale_pay_system_edit.php?lang=".LANG.GetFilterParams("filter_"), "ICON" => "btn_new" ); $aMenu[] = array( "TEXT" => GetMessage("SPSN_DELETE_PAYSYS"), "LINK" => "javascript:if(confirm('".GetMessage("SPSN_DELETE_PAYSYS_CONFIRM")."')) window.location='/bitrix/admin/sale_pay_system.php?action=delete&ID[]=".$ID."&lang=".LANG."&".bitrix_sessid_get()."#tb';", "WARNING" => "Y", "ICON" => "btn_delete" ); } $context = new CAdminContextMenu($aMenu); $context->Show(); ?> 0) echo CAdminMessage::ShowMessage(Array("DETAILS"=>$errorMessage, "TYPE"=>"ERROR", "MESSAGE"=>GetMessage("SPSN_ERROR"), "HTML"=>true));?>