1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
tax_rate.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/tax_rate.php");
4
6{
7 public static function Add($arFields, $arOptions = array())
8 {
9 global $DB;
11 return false;
12
13 $arInsert = $DB->PrepareInsert("b_sale_tax_rate", $arFields);
14 $strSql =
15 "INSERT INTO b_sale_tax_rate(".$arInsert[0].", TIMESTAMP_X) ".
16 "VALUES(".$arInsert[1].", ".$DB->GetNowFunction().")";
17 $DB->Query($strSql);
18
19 $ID = intval($DB->LastID());
20
21 if (is_set($arFields, "TAX_LOCATION"))
22 {
24 }
25
26 return $ID;
27 }
28
29 public static function GetList($arOrder = array("APPLY_ORDER"=>"ASC"), $arFilter = array())
30 {
31 global $DB;
32 $arSqlSearch = Array();
33 $arSqlSearchFrom = Array();
34
35 if (!is_array($arFilter))
36 $filter_keys = Array();
37 else
38 $filter_keys = array_keys($arFilter);
39
40 $countFilteKey = count($filter_keys);
41 for ($i=0; $i < $countFilteKey; $i++)
42 {
43 $val = $DB->ForSql($arFilter[$filter_keys[$i]]);
44
45 if (strval($val) == "")
46 $val = 0;
47
48 $key = $filter_keys[$i];
49 if ($key[0]=="!")
50 {
51 $key = mb_substr($key, 1);
52 $bInvert = true;
53 }
54 else
55 $bInvert = false;
56
57 switch (mb_strtoupper($key))
58 {
59 case "ID":
60 $arSqlSearch[] = "TR.ID ".($bInvert?"<>":"=")." ".intval($val)." ";
61 break;
62 case "LID":
63 $arSqlSearch[] = "T.LID ".($bInvert?"<>":"=")." '".$val."' ";
64 break;
65 case "CODE":
66 $arSqlSearch[] = "T.CODE ".($bInvert?"<>":"=")." '".$val."' ";
67 break;
68 case "TAX_ID":
69 $arSqlSearch[] = "TR.TAX_ID ".($bInvert?"<>":"=")." ".intval($val)." ";
70 break;
71 case "PERSON_TYPE_ID":
72 $arSqlSearch[] = " (TR.PERSON_TYPE_ID ".($bInvert?"<>":"=")." ".intval($val)." OR TR.PERSON_TYPE_ID = 0 OR TR.PERSON_TYPE_ID IS NULL) ";
73 break;
74 case "CURRENCY":
75 $arSqlSearch[] = "TR.CURRENCY ".($bInvert?"<>":"=")." '".$val."' ";
76 break;
77 case "IS_PERCENT":
78 $arSqlSearch[] = "TR.IS_PERCENT ".($bInvert?"<>":"=")." '".$val."' ";
79 break;
80 case "IS_IN_PRICE":
81 $arSqlSearch[] = "TR.IS_IN_PRICE ".($bInvert?"<>":"=")." '".$val."' ";
82 break;
83 case "ACTIVE":
84 $arSqlSearch[] = "TR.ACTIVE ".($bInvert?"<>":"=")." '".$val."' ";
85 break;
86 case "APPLY_ORDER":
87 $arSqlSearch[] = "TR.APPLY_ORDER ".($bInvert?"<>":"=")." ".intval($val)." ";
88 break;
89 case "LOCATION":
90
92 {
93 try
94 {
95 $class = self::CONN_ENTITY_NAME.'Table';
96 $arSqlSearch[] = " TR.ID in (".$class::getConnectedEntitiesQuery(intval($val), 'id', array('select' => array('ID'))).") ";
97 }
98 catch(Exception $e)
99 {
100 }
101 }
102 else
103 {
104 $arSqlSearch[] =
105 " TR.ID = TR2L.TAX_RATE_ID ".
106 " AND (TR2L.LOCATION_CODE = ".intval($val)." AND TR2L.LOCATION_TYPE = 'L' ".
107 " OR L2LG.LOCATION_ID = ".intval($val)." AND TR2L.LOCATION_TYPE = 'G') ";
108 $arSqlSearchFrom[] =
109 ", b_sale_tax2location TR2L ".
110 " LEFT JOIN b_sale_location2location_group L2LG ON (TR2L.LOCATION_TYPE = 'G' AND TR2L.LOCATION_CODE = L2LG.LOCATION_GROUP_ID) ";
111 }
112
113 break;
114 case "LOCATION_CODE":
115 try
116 {
117 $class = self::CONN_ENTITY_NAME.'Table';
118 $arSqlSearch[] = " TR.ID in (".$class::getConnectedEntitiesQuery($val, 'code', array('select' => array('ID'))).") ";
119 }
120 catch(Exception $e)
121 {
122 }
123 break;
124 }
125 }
126
127 $strSqlSearch = "";
128 $countSqlSearch = count($arSqlSearch);
129 for($i=0; $i < $countSqlSearch; $i++)
130 {
131 $strSqlSearch .= " AND ";
132 $strSqlSearch .= " (".$arSqlSearch[$i].") ";
133 }
134
135 $strSqlSearchFrom = "";
136 $countSqlSearchForm = count($arSqlSearchFrom);
137 for($i=0; $i < $countSqlSearchForm; $i++)
138 {
139 $strSqlSearchFrom .= " ".$arSqlSearchFrom[$i]." ";
140 }
141
142 $strSql =
143 "SELECT DISTINCT TR.ID, TR.TAX_ID, TR.PERSON_TYPE_ID, TR.VALUE, TR.CURRENCY, ".
144 " TR.IS_PERCENT, TR.IS_IN_PRICE, TR.APPLY_ORDER, ".$DB->DateToCharFunction("TR.TIMESTAMP_X", "FULL")." as TIMESTAMP_X, ".
145 " T.LID, T.NAME, T.DESCRIPTION, TR.ACTIVE, T.CODE ".
146 "FROM b_sale_tax_rate TR, b_sale_tax T ".
147 " ".$strSqlSearchFrom." ".
148 "WHERE TR.TAX_ID = T.ID ".
149 " ".$strSqlSearch." ";
150
151 $arSqlOrder = Array();
152 foreach ($arOrder as $by=>$order)
153 {
154 $by = mb_strtoupper($by);
155 $order = mb_strtoupper($order);
156 if ($order!="ASC")
157 $order = "DESC";
158
159 if ($by == "ID") $arSqlOrder[] = " TR.ID ".$order." ";
160 elseif ($by == "LID") $arSqlOrder[] = " T.LID ".$order." ";
161 elseif ($by == "CODE") $arSqlOrder[] = " T.CODE ".$order." ";
162 elseif ($by == "TIMESTAMP_X") $arSqlOrder[] = " TR.TIMESTAMP_X ".$order." ";
163 elseif ($by == "ACTIVE") $arSqlOrder[] = " TR.ACTIVE ".$order." ";
164 elseif ($by == "NAME") $arSqlOrder[] = " T.NAME ".$order." ";
165 elseif ($by == "PERSON_TYPE_ID") $arSqlOrder[] = " TR.PERSON_TYPE_ID ".$order." ";
166 elseif ($by == "IS_IN_PRICE") $arSqlOrder[] = " TR.IS_IN_PRICE ".$order." ";
167 else
168 {
169 $arSqlOrder[] = " TR.APPLY_ORDER ".$order." ";
170 $by = "APPLY_ORDER";
171 }
172 }
173
174 $strSqlOrder = "";
175 DelDuplicateSort($arSqlOrder);
176 $countSqlOrder = count($arSqlOrder);
177 for ($i=0; $i < $countSqlOrder; $i++)
178 {
179 if ($i==0)
180 $strSqlOrder = " ORDER BY ";
181 else
182 $strSqlOrder .= ",";
183
184 $strSqlOrder .= $arSqlOrder[$i];
185 }
186
187 $strSql .= $strSqlOrder;
188 //echo "<br>".htmlspecialcharsbx($strSql)."<br>";
189
190 $db_res = $DB->Query($strSql);
191 return $db_res;
192 }
193}
$db_res
Определения options_user_settings.php:8
static isLocationProMigrated()
Определения location.php:58
Определения tax_rate.php:9
static CheckFields($ACTION, &$arFields)
Определения tax_rate.php:12
static SetTaxRateLocation($ID, $arFields, $arOptions=array())
Определения tax_rate.php:75
Определения tax_rate.php:6
static Add($arFields, $arOptions=array())
Определения tax_rate.php:7
static GetList($arOrder=array("APPLY_ORDER"=>"ASC"), $arFilter=array())
Определения tax_rate.php:29
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
$arOptions
Определения structure.php:223
DelDuplicateSort(&$arSort)
Определения tools.php:2055
is_set($a, $k=false)
Определения tools.php:2133
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$val
Определения options.php:1793
$arFilter
Определения user_search.php:106