1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
store_docs_element.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/store_docs_element.php");
4
6{
7 public static function add($arFields)
8 {
9 global $DB;
10
11 foreach(GetModuleEvents("catalog", "OnBeforeCatalogStoreDocsElementAdd", true) as $arEvent)
12 if(ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
13 return false;
14
15 if (!self::CheckFields('ADD',$arFields))
16 return false;
17
18 $arInsert = $DB->PrepareInsert("b_catalog_docs_element", $arFields);
19 $strSql = "INSERT INTO b_catalog_docs_element (".$arInsert[0].") VALUES(".$arInsert[1].")";
20
21 $res = $DB->Query($strSql, true);
22 if(!$res)
23 return false;
24 $lastId = intval($DB->LastID());
25
26 foreach(GetModuleEvents("catalog", "OnCatalogStoreDocsElementAdd", true) as $arEvent)
28
29 return $lastId;
30 }
31
40 public static function getList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
41 {
42 global $DB;
43
44 if (empty($arSelectFields))
45 $arSelectFields = array("ID", "DOC_ID", "STORE_FROM", "STORE_TO", "ELEMENT_ID", "AMOUNT", "PURCHASING_PRICE",
46 "BASE_PRICE", "BASE_PRICE_EXTRA", "BASE_PRICE_EXTRA_RATE", "COMMENT",
47 );
48
50 "ID" => array("FIELD" => "DE.ID", "TYPE" => "int"),
51 "DOC_ID" => array("FIELD" => "DE.DOC_ID", "TYPE" => "int"),
52 "STORE_FROM" => array("FIELD" => "DE.STORE_FROM", "TYPE" => "int"),
53 "STORE_TO" => array("FIELD" => "DE.STORE_TO", "TYPE" => "int"),
54 "ELEMENT_ID" => array("FIELD" => "DE.ELEMENT_ID", "TYPE" => "int"),
55 "AMOUNT" => array("FIELD" => "DE.AMOUNT", "TYPE" => "double"),
56 "PURCHASING_PRICE" => array("FIELD" => "DE.PURCHASING_PRICE", "TYPE" => "double"),
57 "BASE_PRICE" => array("FIELD" => "DE.BASE_PRICE", "TYPE" => "double"),
58 "BASE_PRICE_EXTRA" => array("FIELD" => "DE.BASE_PRICE_EXTRA", "TYPE" => "double"),
59 "BASE_PRICE_EXTRA_RATE" => array("FIELD" => "DE.BASE_PRICE_EXTRA_RATE", "TYPE" => "int"),
60 "COMMENT" => array("FIELD" => "DE.COMMENT", "TYPE" => "string"),
61
62 "IS_MULTIPLY_BARCODE" => array("FIELD" => "CP.BARCODE_MULTI", "TYPE" => "char", "FROM" => "INNER JOIN b_catalog_product CP ON (DE.ELEMENT_ID = CP.ID)"),
63 "RESERVED" => array("FIELD" => "CP.QUANTITY_RESERVED", "TYPE" => "double", "FROM" => "INNER JOIN b_catalog_product CP ON (DE.ELEMENT_ID = CP.ID)"),
64
65 "ELEMENT_IBLOCK_ID" => array("FIELD" => "IE.IBLOCK_ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_iblock_element IE ON (DE.ELEMENT_ID = IE.ID)"),
66 "ELEMENT_NAME" => array("FIELD" => "IE.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_iblock_element IE ON (DE.ELEMENT_ID = IE.ID)")
67 );
68 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
69 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
70
71 if (empty($arGroupBy) && is_array($arGroupBy))
72 {
73 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_docs_element DE ".$arSqls["FROM"];
74 if (!empty($arSqls["WHERE"]))
75 $strSql .= " WHERE ".$arSqls["WHERE"];
76 if (!empty($arSqls["GROUPBY"]))
77 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
78
79 $dbRes = $DB->Query($strSql);
80 if ($arRes = $dbRes->Fetch())
81 return $arRes["CNT"];
82 else
83 return false;
84 }
85 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_docs_element DE ".$arSqls["FROM"];
86 if (!empty($arSqls["WHERE"]))
87 $strSql .= " WHERE ".$arSqls["WHERE"];
88 if (!empty($arSqls["GROUPBY"]))
89 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
90 if (!empty($arSqls["ORDERBY"]))
91 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
92
93 $intTopCount = 0;
94 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
95 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
96 {
97 $intTopCount = intval($arNavStartParams["nTopCount"]);
98 }
99 if ($boolNavStartParams && 0 >= $intTopCount)
100 {
101 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_docs_element DE ".$arSqls["FROM"];
102 if (!empty($arSqls["WHERE"]))
103 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
104 if (!empty($arSqls["GROUPBY"]))
105 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
106
107 $dbRes = $DB->Query($strSql_tmp);
108 $cnt = 0;
109 if (empty($arSqls["GROUPBY"]))
110 {
111 if ($arRes = $dbRes->Fetch())
112 $cnt = $arRes["CNT"];
113 }
114 else
115 {
116 $cnt = $dbRes->SelectedRowsCount();
117 }
118
119 $dbRes = new CDBResult();
120
121 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
122 }
123 else
124 {
125 if ($boolNavStartParams && 0 < $intTopCount)
126 {
127 $strSql .= " LIMIT ".$intTopCount;
128 }
129 $dbRes = $DB->Query($strSql);
130 }
131 return $dbRes;
132 }
133}
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
Определения catalog.php:389
static getList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения store_docs_element.php:40
static add($arFields)
Определения store_docs_element.php:7
if(!\Bitrix\Main\Loader::includeModule('clouds')) $lastId
Определения sync.php:68
$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
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168