use Bitrix\Sale\Location;
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions < "W")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
$ID = IntVal($ID);
ClearVars();
ClearVars("fp_");
$strError = "";
$bInitVars = false;
$lpEnabled = CSaleLocation::isLocationProEnabled();
if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST" && $saleModulePermissions=="W" && check_bitrix_sessid())
{
$TAX_ID = IntVal($TAX_ID);
if ($TAX_ID<=0)
$strError .= GetMessage("ERROR_NO_TAX_ID")."
";
$VALUE = str_replace(",", ".", $VALUE);
$VALUE = DoubleVal($VALUE);
if ($VALUE<=0)
$strError .= GetMessage("ERROR_NO_VALUE")."
";
if ($IS_IN_PRICE!="Y") $IS_IN_PRICE = "N";
if ($ACTIVE!="Y") $ACTIVE = "N";
$IS_PERCENT = "Y";
if ($IS_PERCENT!="Y") $IS_PERCENT = "N";
if ($IS_PERCENT!="Y" && strlen($CURRENCY)<=0)
$strError .= GetMessage("ERROR_PERCENT_OR_CURRENCY")."
";
$APPLY_ORDER = IntVal($APPLY_ORDER);
if ($APPLY_ORDER<=0) $APPLY_ORDER = 100;
$arLocation = array();
if($lpEnabled)
{
if(strlen($_REQUEST['LOCATION']['L']))
$LOCATION1 = explode(':', $_REQUEST['LOCATION']['L']);
if(strlen($_REQUEST['LOCATION']['G']))
$LOCATION2 = explode(':', $_REQUEST['LOCATION']['G']);
}
if (isset($LOCATION1) && is_array($LOCATION1) && count($LOCATION1)>0)
{
$countLocation = count($LOCATION1);
for ($i = 0; $i < $countLocation; $i++)
{
if (strlen($LOCATION1[$i]))
{
$arLocation[] = array(
"LOCATION_ID" => $LOCATION1[$i],
"LOCATION_TYPE" => "L"
);
}
}
}
if (isset($LOCATION2) && is_array($LOCATION2) && count($LOCATION2)>0)
{
$countLocation2 = count($LOCATION2);
for ($i = 0; $i < $countLocation2; $i++)
{
if (strlen($LOCATION2[$i]))
{
$arLocation[] = array(
"LOCATION_ID" => $LOCATION2[$i],
"LOCATION_TYPE" => "G"
);
}
}
}
if (!is_array($arLocation) || count($arLocation)<=0)
$strError .= GetMessage("ERROR_NO_LOCATION")."
";
if (strlen($strError)<=0)
{
unset($arFields);
$arFields = array(
"PERSON_TYPE_ID" => (IntVal($PERSON_TYPE_ID)>0) ? IntVal($PERSON_TYPE_ID) : False,
"TAX_ID" => $TAX_ID,
"VALUE" => $VALUE,
"CURRENCY" => (strlen($CURRENCY)>0) ? $CURRENCY : False,
"IS_PERCENT" => $IS_PERCENT,
"IS_IN_PRICE" => $IS_IN_PRICE,
"APPLY_ORDER" => $APPLY_ORDER,
"ACTIVE" => $ACTIVE,
"TAX_LOCATION" => $arLocation
);
if ($ID>0)
{
if (!CSaleTaxRate::Update($ID, $arFields, array("EXPECT_LOCATION_CODES" => $lpEnabled)))
$strError .= GetMessage("ERROR_EDIT_TAX_RATE")."
";
}
else
{
$ID = CSaleTaxRate::Add($arFields, array("EXPECT_LOCATION_CODES" => $lpEnabled));
if ($ID<=0)
$strError .= GetMessage("ERROR_ADD_TAX_RATE")."
";
}
}
if (strlen($strError)>0) $bInitVars = True;
if (strlen($save)>0 && strlen($strError)<=0)
LocalRedirect("sale_tax_rate.php?lang=".LANG.GetFilterParams("filter_", false));
}
if ($ID>0)
{
$db_tax_rate = CSaleTaxRate::GetList(Array(), Array("ID"=>$ID));
$db_tax_rate->ExtractFields("str_");
}
else
{
$str_APPLY_ORDER = 100;
$str_ACTIVE = "Y";
$str_IS_PERCENT = "Y";
$str_IS_IN_PRICE = "N";
}
if ($bInitVars)
{
$DB->InitTableVarsForEdit("b_sale_tax_rate", "", "str_");
}
if($ID > 0)
$sDocTitle = GetMessage("TAX_RATE_EDIT_RECORD", array("#ID#"=>$ID));
else
$sDocTitle = GetMessage("TAX_RATE_NEW_RECORD");
$APPLICATION->SetTitle($sDocTitle);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
/*********************************************************************/
/******************** BODY *****************************************/
/*********************************************************************/
?>
$aMenu = array(
array(
"TEXT" => GetMessage("STREN_2FLIST"),
"ICON" => "btn_list",
"LINK" => "/bitrix/admin/sale_tax_rate.php?lang=".LANG.GetFilterParams("filter_")
)
);
if ($ID > 0 && $saleModulePermissions >= "W")
{
$aMenu[] = array("SEPARATOR" => "Y");
$aMenu[] = array(
"TEXT" => GetMessage("STREN_NEW_RATE"),
"ICON" => "btn_new",
"LINK" => "/bitrix/admin/sale_tax_rate_edit.php?lang=".LANG.GetFilterParams("filter_")
);
$aMenu[] = array(
"TEXT" => GetMessage("STREN_DELETE_RATE"),
"ICON" => "btn_delete",
"LINK" => "javascript:if(confirm('".GetMessage("STREN_DELETE_RATE_CONFIRM")."')) window.location='/bitrix/admin/sale_tax_rate.php?action=delete&ID[]=".$ID."&lang=".LANG."&".bitrix_sessid_get()."#tb';",
);
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
?>