PageRenderTime 41ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/bitrix/modules/sale/admin/tax_rate.php

https://gitlab.com/Rad1calDreamer/honey
PHP | 328 lines | 263 code | 56 blank | 9 comment | 25 complexity | 536abd6c85247ea36c4fb142e4c5905c MD5 | raw file
  1. <?
  2. ##############################################
  3. # Bitrix: SiteManager #
  4. # Copyright (c) 2002-2006 Bitrix #
  5. # http://www.bitrixsoft.com #
  6. # mailto:admin@bitrixsoft.com #
  7. ##############################################
  8. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  9. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php");
  10. $saleModulePermissions = $APPLICATION->GetGroupRight("sale");
  11. if ($saleModulePermissions < "W")
  12. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  13. ClearVars("l_");
  14. IncludeModuleLangFile(__FILE__);
  15. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
  16. $sTableID = "tbl_sale_tax_rate";
  17. $oSort = new CAdminSorting($sTableID, "ID", "asc");
  18. $lAdmin = new CAdminList($sTableID, $oSort);
  19. $arFilterFields = array(
  20. "filter_tax_id",
  21. "filter_person_type_id",
  22. "filter_lang",
  23. "filter_location"
  24. );
  25. $lAdmin->InitFilter($arFilterFields);
  26. $arFilter = array();
  27. if (strlen($filter_lang) > 0 && $filter_lang != "NOT_REF")
  28. $arFilter["LID"] = Trim($filter_lang);
  29. if (IntVal($filter_tax_id) > 0)
  30. $arFilter["TAX_ID"] = IntVal($filter_tax_id);
  31. if (IntVal($filter_person_type_id) > 0)
  32. $arFilter["PERSON_TYPE_ID"] = IntVal($filter_person_type_id);
  33. if (IntVal($filter_location) > 0)
  34. $arFilter["LOCATION"] = IntVal($filter_location);
  35. if (($arID = $lAdmin->GroupAction()) && $saleModulePermissions >= "W")
  36. {
  37. if ($_REQUEST['action_target']=='selected')
  38. {
  39. $arID = Array();
  40. $dbResultList = CSaleTaxRate::GetList(
  41. array($by => $order),
  42. $arFilter
  43. );
  44. while ($arResult = $dbResultList->Fetch())
  45. $arID[] = $arResult['ID'];
  46. }
  47. foreach ($arID as $ID)
  48. {
  49. if (strlen($ID) <= 0)
  50. continue;
  51. switch ($_REQUEST['action'])
  52. {
  53. case "delete":
  54. @set_time_limit(0);
  55. $DB->StartTransaction();
  56. if (!CSaleTaxRate::Delete($ID))
  57. {
  58. $DB->Rollback();
  59. if ($ex = $APPLICATION->GetException())
  60. $lAdmin->AddGroupError($ex->GetString(), $ID);
  61. else
  62. $lAdmin->AddGroupError(GetMessage("SALE_DELETE_ERROR"), $ID);
  63. }
  64. $DB->Commit();
  65. break;
  66. case "activate":
  67. case "deactivate":
  68. $arFields = array(
  69. "ACTIVE" => (($_REQUEST['action']=="activate") ? "Y" : "N")
  70. );
  71. if (!CSaleTaxRate::Update($ID, $arFields))
  72. {
  73. if ($ex = $APPLICATION->GetException())
  74. $lAdmin->AddGroupError($ex->GetString(), $ID);
  75. else
  76. $lAdmin->AddGroupError(GetMessage("ERROR_EDIT_TAX_RATE"), $ID);
  77. }
  78. break;
  79. }
  80. }
  81. }
  82. $dbResultList = CSaleTaxRate::GetList(Array($by => $order), $arFilter);
  83. $dbResultList = new CAdminResult($dbResultList, $sTableID);
  84. $dbResultList->NavStart();
  85. $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("SALE_TAX_RATE_LIST")));
  86. $lAdmin->AddHeaders(array(
  87. array("id"=>"ID", "content"=>"ID", "sort"=>"ID", "default"=>true),
  88. array("id"=>"ACTIVE", "content"=>GetMessage("RATE_ACTIVE"), "sort"=>"ACTIVE", "default"=>true, "align" => "center",),
  89. array("id"=>"TIMESTAMP_X", "content"=>GetMessage("TAX_TIMESTAMP"), "sort"=>"TIMESTAMP_X", "default"=>true),
  90. array("id"=>"NAME", "content"=>GetMessage("TAX_NAME"), "sort"=>"NAME", "default"=>true),
  91. array("id"=>"PERSON_TYPE_ID", "content"=>GetMessage("RATE_PERSON_TYPE"), "sort"=>"PERSON_TYPE_ID", "default"=>true),
  92. array("id"=>"VALUE", "content"=>GetMessage("RATE_VALUE"), "sort"=>"", "default"=>true),
  93. array("id"=>"IS_IN_PRICE", "content"=>GetMessage("RATE_IS_INPRICE"), "sort"=>"IS_IN_PRICE", "default"=>true),
  94. array("id"=>"APPLY_ORDER", "content"=>GetMessage("RATE_APPLY_ORDER"), "sort"=>"APPLY_ORDER", "default"=>true),
  95. ));
  96. $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();
  97. $arPersonTypeList = array();
  98. $dbPersonType = CSalePersonType::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array());
  99. while ($arPersonType = $dbPersonType->Fetch())
  100. {
  101. $arPersonTypeList[$arPersonType["ID"]] = Array("ID" => $arPersonType["ID"], "NAME" => htmlspecialcharsEx($arPersonType["NAME"]), "LID" => implode(", ", $arPersonType["LIDS"]));
  102. }
  103. while ($arTaxRate = $dbResultList->NavNext(true, "f_"))
  104. {
  105. $row =& $lAdmin->AddRow($f_ID, $arTaxRate);
  106. $row->AddField("ID", $f_ID);
  107. $row->AddField("ACTIVE", ($f_ACTIVE=="Y") ? GetMessage("RATE_YES") : GetMessage("RATE_NET"));
  108. $row->AddField("TIMESTAMP_X", $f_TIMESTAMP_X);
  109. $fieldShow = '<a href="sale_tax_edit.php?ID='.$f_TAX_ID.'&lang='.LANGUAGE_ID.'" title="'.GetMessage('TAX_EDIT_DESCR').'">'.$f_NAME.'</a> ('.$f_LID.')';
  110. $row->AddField("NAME", $fieldShow);
  111. $fieldShow = "";
  112. if (in_array("PERSON_TYPE_ID", $arVisibleColumns))
  113. {
  114. if (IntVal($f_PERSON_TYPE_ID)>0)
  115. {
  116. $arPerType = $arPersonTypeList[$f_PERSON_TYPE_ID];
  117. $fieldShow .= "[".$arPerType["ID"]."] ".$arPerType["NAME"]." (".htmlspecialcharsEx($arPerType["LID"]).")";
  118. }
  119. else
  120. {
  121. $fieldShow .= "&nbsp;";
  122. }
  123. }
  124. $row->AddField("PERSON_TYPE_ID", $fieldShow);
  125. $row->AddField("VALUE", $f_VALUE.(($f_IS_PERCENT=="Y") ? "%" : " ".$f_CURRENCY));
  126. $row->AddField("IS_IN_PRICE", ($f_IS_IN_PRICE=="Y") ? GetMessage("RATE_YES") : GetMessage("RATE_NET"));
  127. $row->AddField("APPLY_ORDER", $f_APPLY_ORDER);
  128. $arActions = array();
  129. $arActions[] = array("ICON"=>"edit", "TEXT"=>GetMessage("RATE_EDIT_DESCR"), "ACTION"=>$lAdmin->ActionRedirect("sale_tax_rate_edit.php?ID=".$f_ID."&lang=".LANG.GetFilterParams("filter_").""), "DEFAULT"=>true);
  130. if ($saleModulePermissions >= "W")
  131. {
  132. $arActions[] = array("SEPARATOR" => true);
  133. $arActions[] = array("ICON"=>"delete", "TEXT"=>GetMessage("RATE_DELETE_DESCR"), "ACTION"=>"if(confirm('".GetMessage('TAX_RATE_DEL_CONF')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete"));
  134. }
  135. $row->AddActions($arActions);
  136. }
  137. $lAdmin->AddFooter(
  138. array(
  139. array(
  140. "title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"),
  141. "value" => $dbResultList->SelectedRowsCount()
  142. ),
  143. array(
  144. "counter" => true,
  145. "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"),
  146. "value" => "0"
  147. ),
  148. )
  149. );
  150. $lAdmin->AddGroupActionTable(
  151. array(
  152. "delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
  153. "activate" => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"),
  154. "deactivate" => GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"),
  155. )
  156. );
  157. if ($saleModulePermissions == "W")
  158. {
  159. $aContext = array(
  160. array(
  161. "TEXT" => GetMessage("STRAN_ADD_NEW"),
  162. "ICON" => "btn_new",
  163. "LINK" => "sale_tax_rate_edit.php?lang=".LANG,
  164. "TITLE" => GetMessage("STRAN_ADD_NEW_ALT")
  165. ),
  166. );
  167. $lAdmin->AddAdminContextMenu($aContext);
  168. }
  169. $lAdmin->CheckListMode();
  170. /****************************************************************************/
  171. /*********** MAIN PAGE ****************************************************/
  172. /****************************************************************************/
  173. $APPLICATION->SetTitle(GetMessage("SALE_SECTION_TITLE"));
  174. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
  175. ?>
  176. <form name="find_form" method="GET" action="<?echo $APPLICATION->GetCurPage()?>?">
  177. <?
  178. $oFilter = new CAdminFilter(
  179. $sTableID."_filter",
  180. array(
  181. GetMessage("SALE_F_LANG"),
  182. GetMessage("SALE_F_PERSON_TYPE"),
  183. GetMessage("SALE_F_LOCATION"),
  184. )
  185. );
  186. $oFilter->Begin();
  187. ?>
  188. <tr>
  189. <td><?echo GetMessage("SALE_F_TAX")?>:</td>
  190. <td>
  191. <?$db_TAX = CSaleTax::GetList(array("NAME" => "ASC"), array());?>
  192. <select name="filter_tax_id">
  193. <option value=""><?echo GetMessage("SALE_ALL") ?></option>
  194. <?
  195. while ($db_TAX_arr = $db_TAX->NavNext(true, "fp_"))
  196. {
  197. ?><option value="<?echo $fp_ID ?>" <?if (IntVal($fp_ID)==IntVal($filter_tax_id)) echo "selected";?>><?echo $fp_NAME ?> (<?echo $fp_LID ?>)</option><?
  198. }
  199. ?>
  200. </select>
  201. </td>
  202. </tr>
  203. <tr>
  204. <td><?echo GetMessage("SALE_F_LANG");?>:</td>
  205. <td>
  206. <?echo CLang::SelectBox("filter_lang", $filter_lang, GetMessage("SALE_ALL")) ?>
  207. </td>
  208. </tr>
  209. <tr>
  210. <td><?echo GetMessage("SALE_F_PERSON_TYPE")?>:</td>
  211. <td>
  212. <?echo CSalePersonType::SelectBox("filter_person_type_id", $filter_person_type_id, GetMessage("SALE_ALL"), True, "", "")?>
  213. </td>
  214. </tr>
  215. <tr>
  216. <td><?echo GetMessage("SALE_F_LOCATION")?>:</td>
  217. <td>
  218. <?if(CSaleLocation::isLocationProEnabled()):?>
  219. <div style="width: 100%; margin-left: 12px">
  220. <?$APPLICATION->IncludeComponent("bitrix:sale.location.selector.search", "", array(
  221. "ID" => $filter_location,
  222. "CODE" => "",
  223. "INPUT_NAME" => 'filter_location',
  224. "PROVIDE_LINK_BY" => "id",
  225. "SHOW_ADMIN_CONTROLS" => 'N',
  226. "SELECT_WHEN_SINGLE" => 'N',
  227. "FILTER_BY_SITE" => 'N',
  228. "SHOW_DEFAULT_LOCATIONS" => 'N',
  229. "SEARCH_BY_PRIMARY" => 'Y',
  230. "INITIALIZE_BY_GLOBAL_EVENT" => 'onAdminFilterInited', // this allows js logic to be initialized after admin filter
  231. "GLOBAL_EVENT_SCOPE" => 'window'
  232. ),
  233. false
  234. );?>
  235. </div>
  236. <style>
  237. .adm-filter-item-center,
  238. .adm-filter-content {
  239. overflow: visible !important;
  240. }
  241. </style>
  242. <?else:?>
  243. <select name="filter_location">
  244. <option value=""><?echo GetMessage("SALE_ALL")?></option>
  245. <?$db_vars = CSaleLocation::GetList(Array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), array(), LANG)?>
  246. <?while ($vars = $db_vars->Fetch()):?>
  247. <option value="<?echo $vars["ID"]?>"<?if (IntVal($vars["ID"])==IntVal($filter_location)) echo " selected"?>><?echo htmlspecialcharsbx($vars["COUNTRY_NAME"]." - ".$vars["CITY_NAME"])?></option>
  248. <?endwhile;?>
  249. </select>
  250. <?endif?>
  251. </td>
  252. </tr>
  253. <?
  254. $oFilter->Buttons(
  255. array(
  256. "table_id" => $sTableID,
  257. "url" => $APPLICATION->GetCurPage(),
  258. "form" => "find_form"
  259. )
  260. );
  261. $oFilter->End();
  262. ?>
  263. </form>
  264. <?
  265. $lAdmin->DisplayList();
  266. ?>
  267. <?echo BeginNote();?>
  268. <?echo GetMessage("RATE_ORDER_NOTES")?><br>
  269. <?echo EndNote();?>
  270. <?
  271. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
  272. ?>