use Bitrix\Main\Application;
use Bitrix\Main\Page\Asset;
use Bitrix\Sale\Order;
use Bitrix\Main\Localization\Loc;
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
$moduleId = "sale";
global $USER;
Bitrix\Main\Loader::includeModule('sale');
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
CUtil::InitJSCore();
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/lib/helpers/admin/orderedit.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/lib/helpers/admin/formrecovery.php");
Asset::getInstance()->addCss('/bitrix/themes/.default/sale.css');
/** @var null|\Bitrix\Sale\Order $saleOrder */
$saleOrder = null;
$request = Application::getInstance()->getContext()->getRequest();
$lang = Application::getInstance()->getContext()->getLanguage();
$siteId = Application::getInstance()->getContext()->getSite();
$orderId = intval($request->get('order_id'));
$paymentId = intval($request->get('payment_id'));
$new = $paymentId <= 0;
$tableId = "order_payment_edit_info";
$backUrl = $request->get('backurl');
if($orderId <= 0 || !($saleOrder = Bitrix\Sale\Order::load($orderId)))
LocalRedirect("/bitrix/admin/sale_order.php?lang=".$lang.GetFilterParams("filter_", false));
$payment = null;
$errors = array();
$fields = array();
if ($request->get('delete') == 'Y' && check_bitrix_sessid())
{
$paymentCollection = $saleOrder->getPaymentCollection();
$payment = $paymentCollection->getItemById($paymentId);
if ($payment)
{
$delResult = $payment->delete();
if (!$delResult->isSuccess())
{
$errors = $delResult->getErrorMessages();
}
else
{
$result = $saleOrder->save();
if ($result->isSuccess())
{
if ($backUrl)
LocalRedirect($backUrl);
else
LocalRedirect('/bitrix/admin/sale_order_payment.php?lang=' . $lang . GetFilterParams('filter_', false));
}
else
{
$errors = $result->getErrorMessages();
}
}
}
}
if ($request->isPost() && check_bitrix_sessid() && $request->get('update'))
{
/**
* @var $result \Bitrix\Main\Entity\Result;
*/
$result = \Bitrix\Sale\Helpers\Admin\Blocks\OrderPayment::updateData($saleOrder, $request->get('PAYMENT'));
$data = $result->getData();
$payment = array_shift($data['PAYMENT']);
if ($result->isSuccess())
{
$saveResult = $saleOrder->save();
if ($saveResult->isSuccess())
{
$paymentId = $payment->getId();
if (strlen($request->getPost("apply")) == 0)
if ($backUrl)
LocalRedirect($backUrl);
else
LocalRedirect('/bitrix/admin/sale_order_payment.php?lang='.$lang.GetFilterParams('filter_', false));
else
LocalRedirect("/bitrix/admin/sale_order_payment_edit.php?lang=".$lang."&order_id=".$orderId."&payment_id=".$paymentId."&backurl=".urlencode($backUrl).GetFilterParams("filter_", false));
}
else
{
$errors = $saveResult->getErrorMessages();
}
}
else
{
$errors = $result->getErrorMessages();
}
}
else
{
if ($paymentId > 0)
$payment = $saleOrder->getPaymentCollection()->getItemById($paymentId);
else
$payment = $saleOrder->getPaymentCollection()->createItem();
}
$companyParams = array(
'select' => array('ID', 'NAME')
);
if ($paymentId)
$title = str_replace("#ID#", $paymentId, GetMessage("EDIT_ORDER_PAYMENT"));
else
$title = GetMessage("NEW_ORDER_PAYMENT");
$APPLICATION->SetTitle($title);
if ($paymentId > 0)
{
global $entity;
$entity = array(
'ENTITY' => 'PAYMENT',
'ENTITY_ID' => $paymentId
);
$_GET['ID'] = $orderId;
ob_start();
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/admin/order_history.php");
$historyContent = ob_get_contents();
ob_end_clean();
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$aMenu = array();
$aMenu[] = array(
"ICON" => "btn_list",
"TEXT" => Loc::getMessage("SOPE_PAYMENT_TRANSITION"),
"TITLE"=> Loc::getMessage("SOPE_PAYMENT_TRANSITION_TITLE"),
"LINK" => "/bitrix/admin/sale_order_view.php?ID=".$orderId."&lang=".$lang.GetFilterParams("filter_")
);
if (!$new)
{
$aMenu[] = array(
"TEXT" => Loc::getMessage("SOPE_PAYMENT_DELETE"),
"TITLE" => Loc::getMessage("SOPE_PAYMENT_DELETE_TITLE"),
"LINK" => "javascript:void(0)",
"ONCLICK" => "if(confirm('".Loc::getMessage('SOPE_PAYMENT_DELETE_MESSAGE')."')) window.location.href='/bitrix/admin/sale_order_payment_edit.php?order_id=".$orderId."&payment_id=".$paymentId."&delete=Y&".bitrix_sessid_get()."&lang=".LANGUAGE_ID.GetFilterParams("filter_")."'"
);
}
$aMenu[] = array(
"TEXT" => Loc::getMessage("SOPE_PAYMENT_LIST"),
"TITLE"=> Loc::getMessage("SOPE_PAYMENT_LIST_TITLE"),
"LINK" => "/bitrix/admin/sale_order_payment.php?lang=".$lang.GetFilterParams("filter_")
);
$context = new CAdminContextMenu($aMenu);
$context->Show();
if(!empty($errors))
CAdminMessage::ShowMessage(implode("
\n", $errors));
$aTabs = array(
array("DIV" => "tab_order", "TAB" => GetMessage("SOP_TAB_PAYMENT"), "SHOW_WRAP" => "N", "IS_DRAGGABLE" => "Y")
);
if ($paymentId > 0)
{
$aTabs[] = array("DIV" => "tab_history", "TAB" => GetMessage("SOP_TAB_HISTORY"), "TITLE" => GetMessage("SOP_TAB_HISTORY"));
$aTabs[] = array("DIV" => "tab_analysis", "TAB" => GetMessage("SOP_TAB_ANALYSIS"), "TITLE" => GetMessage("SOP_TAB_ANALYSIS"));
}
?>