1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
order_user_props_value.php
См. документацию.
1<?php
2
4{
5 public static function GetByID($ID)
6 {
7 global $DB;
8
9 $ID = intval($ID);
10
12 {
13 $strSql =
14 "SELECT V.ID, V.USER_PROPS_ID, V.ORDER_PROPS_ID, V.NAME, ".self::getPropertyValueFieldSelectSql('V').", P.TYPE ".
15 "FROM b_sale_user_props_value V ".
16 "INNER JOIN b_sale_order_props P ON (V.ORDER_PROPS_ID = P.ID) ".
18 "WHERE V.ID = ".$ID."";
19 }
20 else
21 {
22 $strSql =
23 "SELECT * ".
24 "FROM b_sale_user_props_value ".
25 "WHERE ID = ".$ID."";
26 }
27
28 $db_res = $DB->Query($strSql);
29
30 if ($res = $db_res->Fetch())
31 {
32 return $res;
33 }
34 return False;
35 }
36
37 public static function Delete($ID)
38 {
39 global $DB;
40 $ID = intval($ID);
41 return $DB->Query("DELETE FROM b_sale_user_props_value WHERE ID = ".$ID."", true);
42 }
43
44 public static function DeleteAll($ID)
45 {
46 global $DB;
47 $ID = intval($ID);
48 return $DB->Query("DELETE FROM b_sale_user_props_value WHERE USER_PROPS_ID = ".$ID."", true);
49 }
50
51 public static function Update($ID, $arFields)
52 {
53 global $DB;
54 $ID = intval($ID);
55
56 // need to check here if we got CODE or ID came
57 if(isset($arFields['VALUE']) && ((string) $arFields['VALUE'] != '') && CSaleLocation::isLocationProMigrated())
58 {
59 $propValue = self::GetByID($ID);
60
61 if($propValue['TYPE'] == 'LOCATION')
62 {
64 }
65 }
66
67 $strUpdate = $DB->PrepareUpdate("b_sale_user_props_value", $arFields);
68 $strSql =
69 "UPDATE b_sale_user_props_value SET ".
70 " ".$strUpdate." ".
71 "WHERE ID = ".$ID." ";
72 $DB->Query($strSql);
73
74 return $ID;
75 }
76
77 protected static function getPropertyValueFieldSelectSql($tableAlias = 'PV', $propTableAlias = 'P')
78 {
79 $tableAlias = \Bitrix\Main\HttpApplication::getConnection()->getSqlHelper()->forSql($tableAlias);
80 $propTableAlias = \Bitrix\Main\HttpApplication::getConnection()->getSqlHelper()->forSql($propTableAlias);
81
83 return "
84 CASE
85
86 WHEN
87 ".$propTableAlias.".TYPE = 'LOCATION'
88 THEN
89 CAST(L.ID as ".\Bitrix\Sale\Location\DB\Helper::getSqlForDataType('char', 255).")
90
91 ELSE
92 ".$tableAlias.".VALUE
93 END as VALUE, ".$tableAlias.".VALUE as VALUE_ORIG";
94 else
95 return $tableAlias.".VALUE";
96 }
97
98 protected static function getLocationTableJoinSql($tableAlias = 'PV', $propTableAlias = 'P')
99 {
100 $tableAlias = \Bitrix\Main\HttpApplication::getConnection()->getSqlHelper()->forSql($tableAlias);
101 $propTableAlias = \Bitrix\Main\HttpApplication::getConnection()->getSqlHelper()->forSql($propTableAlias);
102
104 return "LEFT JOIN b_sale_location L ON (".$propTableAlias.".TYPE = 'LOCATION' AND ".$tableAlias.".VALUE IS NOT NULL AND (".$tableAlias.".VALUE = L.CODE))";
105 else
106 return " ";
107 }
108
109 protected static function translateLocationIDToCode($id, $orderPropId)
110 {
112 return $id;
113
114 $prop = CSaleOrderProps::GetByID($orderPropId);
115 if(isset($prop['TYPE']) && $prop['TYPE'] == 'LOCATION')
116 {
117 if((string) $id === (string) intval($id)) // real ID, need to translate
118 {
120 }
121 }
122
123 return $id;
124 }
125
126 protected static function addPropertyValueField($tableAlias, &$arFields, &$arSelectFields)
127 {
128 $tableAlias ??= 'V';
129 $tableAlias = \Bitrix\Main\HttpApplication::getConnection()->getSqlHelper()->forSql($tableAlias);
130
131 // locations kept in CODEs, but must be shown as IDs
133 {
134 $arSelectFields = array_merge(array('PROP_TYPE'), $arSelectFields); // P.TYPE should be there and go above our join
135
136 $arFields['VALUE'] = array("FIELD" => "
137 CASE
138
139 WHEN
140 P.TYPE = 'LOCATION'
141 THEN
142 CAST(L.ID as ".\Bitrix\Sale\Location\DB\Helper::getSqlForDataType('char', 255).")
143
144 ELSE
145 ".$tableAlias.".VALUE
146 END
147 ", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_location L ON (P.TYPE = 'LOCATION' AND ".$tableAlias.".VALUE IS NOT NULL AND ".$tableAlias.".VALUE = L.CODE)");
148 $arFields['VALUE_ORIG'] = array("FIELD" => $tableAlias.".VALUE", "TYPE" => "string");
149 }
150 else
151 {
152 $arFields['VALUE'] = array("FIELD" => $tableAlias.".VALUE", "TYPE" => "string");
153 }
154 }
155
156// protected static function getList15($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
157// {
158// $query = new \Bitrix\Sale\Compatible\OrderQueryLocation(Bitrix\Sale\Internals\UserPropsValueTable::getEntity());
159// $query->addLocationRuntimeField('DEFAULT_VALUE');????
160// $query->addAliases(array(
161// // for GetList
162// 'PROP_ID' => 'PROPERTY.ID',
163// 'PROP_PERSON_TYPE_ID' => 'PROPERTY.PERSON_TYPE_ID',
164// 'PROP_NAME' => 'PROPERTY.NAME',
165// 'PROP_TYPE' => 'PROPERTY.TYPE',
166// 'PROP_REQUIED' => 'PROPERTY.REQUIRED',
167// 'PROP_DEFAULT_VALUE' => 'PROPERTY.DEFAULT_VALUE',
168// 'PROP_SORT' => 'PROPERTY.SORT',
169// 'PROP_USER_PROPS' => 'PROPERTY.USER_PROPS',
170// 'PROP_IS_LOCATION' => 'PROPERTY.IS_LOCATION',
171// 'PROP_PROPS_GROUP_ID' => 'PROPERTY.PROPS_GROUP_ID',
172// 'PROP_DESCRIPTION' => 'PROPERTY.DESCRIPTION',
173// 'PROP_IS_EMAIL' => 'PROPERTY.IS_EMAIL',
174// 'PROP_IS_PROFILE_NAME' => 'PROPERTY.IS_PROFILE_NAME',
175// 'PROP_IS_PAYER' => 'PROPERTY.IS_PAYER',
176// 'PROP_IS_LOCATION4TAX' => 'PROPERTY.IS_LOCATION4TAX',
177// 'PROP_IS_ZIP' => 'PROPERTY.IS_ZIP',
178// 'PROP_CODE' => 'PROPERTY.CODE',
179// 'PROP_ACTIVE' => 'PROPERTY.ACTIVE',
180// 'PROP_UTIL' => 'PROPERTY.UTIL',
181//
182//
183//
184// "PROP_SIZE1" => array("FIELD" => "P.SIZE1", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_order_props P ON (UP.ORDER_PROPS_ID = P.ID)"),
185// "PROP_SIZE2" => array("FIELD" => "P.SIZE2", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_order_props P ON (UP.ORDER_PROPS_ID = P.ID)"),
186//
187// "VARIANT_ID" => array("FIELD" => "PV.ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_sale_order_props_variant PV ON (UP.ORDER_PROPS_ID = PV.ORDER_PROPS_ID AND UP.VALUE = PV.VALUE)"),
188// "VARIANT_ORDER_PROPS_ID" => array("FIELD" => "PV.ORDER_PROPS_ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_sale_order_props_variant PV ON (UP.ORDER_PROPS_ID = PV.ORDER_PROPS_ID AND UP.VALUE = PV.VALUE)"),
189// "VARIANT_NAME" => array("FIELD" => "PV.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_order_props_variant PV ON (UP.ORDER_PROPS_ID = PV.ORDER_PROPS_ID AND UP.VALUE = PV.VALUE)"),
190// "VARIANT_VALUE" => array("FIELD" => "PV.VALUE", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_order_props_variant PV ON (UP.ORDER_PROPS_ID = PV.ORDER_PROPS_ID AND UP.VALUE = PV.VALUE)"),
191// "VARIANT_SORT" => array("FIELD" => "PV.SORT", "TYPE" => "int", "FROM" => "LEFT JOIN b_sale_order_props_variant PV ON (UP.ORDER_PROPS_ID = PV.ORDER_PROPS_ID AND UP.VALUE = PV.VALUE)"),
192// "VARIANT_DESCRIPTION" => array("FIELD" => "PV.DESCRIPTION", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_order_props_variant PV ON (UP.ORDER_PROPS_ID = PV.ORDER_PROPS_ID AND UP.VALUE = PV.VALUE)"),
193//
194// "USER_VALUE_NAME" => array("FIELD" => "PV.NAME", "TYPE" => "string"),
195// "TYPE" => array("FIELD" => "P.TYPE", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props P ON (UP.ORDER_PROPS_ID = P.ID)"),
196// "SORT" => array("FIELD" => "P.SORT", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_order_props P ON (UP.ORDER_PROPS_ID = P.ID)"),
197// "CODE" => array("FIELD" => "P.CODE", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props P ON (UP.ORDER_PROPS_ID = P.ID)"),
198//
199// ));
200// }
201}
$db_res
Определения options_user_settings.php:8
static getConnection($name="")
Определения application.php:638
static getSqlForDataType($type, $len=0)
Определения commonhelper.php:20
static isLocationProMigrated()
Определения location.php:58
static tryTranslateIDToCode($id)
Определения location.php:281
static getLocationTableJoinSql($tableAlias='PV', $propTableAlias='P')
Определения order_user_props_value.php:98
static GetByID($ID)
Определения order_user_props_value.php:5
static DeleteAll($ID)
Определения order_user_props_value.php:44
static addPropertyValueField($tableAlias, &$arFields, &$arSelectFields)
Определения order_user_props_value.php:126
static getPropertyValueFieldSelectSql($tableAlias='PV', $propTableAlias='P')
Определения order_user_props_value.php:77
static translateLocationIDToCode($id, $orderPropId)
Определения order_user_props_value.php:109
static Update($ID, $arFields)
Определения order_user_props_value.php:51
static GetByID($ID)
Определения order_props.php:627
$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
$res
Определения filter_act.php:7
if($ajaxMode) $ID
Определения get_user.php:27
global $DB
Определения cron_frame.php:29