1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
historyservice.php
См. документацию.
1<?
2include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/classes/general/historyservice.php");
3
5 extends CBPAllHistoryService
6{
7 public function __construct()
8 {
9 parent::__construct();
10 }
11
12 public function AddHistory($arFields)
13 {
14 global $DB;
15
16 self::ParseFields($arFields, 0);
17
18 $arInsert = $DB->PrepareInsert("b_bp_history", $arFields);
19
20 $strSql =
21 "INSERT INTO b_bp_history (".$arInsert[0].", MODIFIED) ".
22 "VALUES(".$arInsert[1].", ".$DB->CurrentTimeFunction().")";
23 $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__);
24
25 $ID = intval($DB->LastID());
26
27 $arEventParams = array(
28 "ID" => $ID,
29 "DOCUMENT_ID" => array($arFields['MODULE_ID'], $arFields['ENTITY'], $arFields['DOCUMENT_ID']),
30 );
31 foreach (GetModuleEvents('bizproc', 'OnAddToHistory', true) as $arEvent)
32 $result = ExecuteModuleEventEx($arEvent, array($arEventParams));
33
34 return $ID;
35 }
36
37 public function UpdateHistory($id, $arFields)
38 {
39 global $DB;
40
41 $id = intval($id);
42 if ($id <= 0)
43 throw new CBPArgumentNullException("id");
44
45 self::ParseFields($arFields, $id);
46
47 $strUpdate = $DB->PrepareUpdate("b_bp_history", $arFields);
48
49 $strSql =
50 "UPDATE b_bp_history SET ".
51 " ".$strUpdate.", ".
52 " MODIFIED = ".$DB->CurrentTimeFunction()." ".
53 "WHERE ID = ".intval($id)." ";
54 $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__);
55
56 return $id;
57 }
58
59 public function GetHistoryList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
60 {
61 global $DB;
62
63 if (count($arSelectFields) <= 0)
64 $arSelectFields = array("ID", "MODULE_ID", "ENTITY", "DOCUMENT_ID", "NAME", "DOCUMENT", "MODIFIED", "USER_ID");
65
66 if (count(array_intersect($arSelectFields, array("MODULE_ID", "ENTITY", "DOCUMENT_ID"))) > 0)
67 {
68 if (!in_array("MODULE_ID", $arSelectFields))
69 $arSelectFields[] = "MODULE_ID";
70 if (!in_array("ENTITY", $arSelectFields))
71 $arSelectFields[] = "ENTITY";
72 if (!in_array("DOCUMENT_ID", $arSelectFields))
73 $arSelectFields[] = "DOCUMENT_ID";
74 }
75
76 if (array_key_exists("DOCUMENT_ID", $arFilter))
77 {
78 $d = CBPHelper::ParseDocumentId($arFilter["DOCUMENT_ID"]);
79 $arFilter["MODULE_ID"] = $d[0];
80 $arFilter["ENTITY"] = $d[1];
81 $arFilter["DOCUMENT_ID"] = $d[2];
82 }
83
84 static $arFields = array(
85 "ID" => Array("FIELD" => "H.ID", "TYPE" => "int"),
86 "MODULE_ID" => Array("FIELD" => "H.MODULE_ID", "TYPE" => "string"),
87 "ENTITY" => Array("FIELD" => "H.ENTITY", "TYPE" => "string"),
88 "DOCUMENT_ID" => Array("FIELD" => "H.DOCUMENT_ID", "TYPE" => "string"),
89 "NAME" => Array("FIELD" => "H.NAME", "TYPE" => "string"),
90 "DOCUMENT" => Array("FIELD" => "H.DOCUMENT", "TYPE" => "string"),
91 "MODIFIED" => Array("FIELD" => "H.MODIFIED", "TYPE" => "datetime"),
92 "USER_ID" => Array("FIELD" => "H.USER_ID", "TYPE" => "int"),
93
94 "USER_NAME" => Array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (H.USER_ID = U.ID)"),
95 "USER_LAST_NAME" => Array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (H.USER_ID = U.ID)"),
96 "USER_SECOND_NAME" => Array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (H.USER_ID = U.ID)"),
97 "USER_LOGIN" => Array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (H.USER_ID = U.ID)"),
98 );
99
100 $arSqls = CBPHelper::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
101
102 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
103
104 if (is_array($arGroupBy) && count($arGroupBy)==0)
105 {
106 $strSql =
107 "SELECT ".$arSqls["SELECT"]." ".
108 "FROM b_bp_history H ".
109 " ".$arSqls["FROM"]." ";
110 if (strlen($arSqls["WHERE"]) > 0)
111 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
112 if (strlen($arSqls["GROUPBY"]) > 0)
113 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
114
115 $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
116 if ($arRes = $dbRes->Fetch())
117 return $arRes["CNT"];
118 else
119 return False;
120 }
121
122 $strSql =
123 "SELECT ".$arSqls["SELECT"]." ".
124 "FROM b_bp_history H ".
125 " ".$arSqls["FROM"]." ";
126 if (strlen($arSqls["WHERE"]) > 0)
127 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
128 if (strlen($arSqls["GROUPBY"]) > 0)
129 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
130 if (strlen($arSqls["ORDERBY"]) > 0)
131 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
132
133 if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0)
134 {
135 $strSql_tmp =
136 "SELECT COUNT('x') as CNT ".
137 "FROM b_bp_history H ".
138 " ".$arSqls["FROM"]." ";
139 if (strlen($arSqls["WHERE"]) > 0)
140 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
141 if (strlen($arSqls["GROUPBY"]) > 0)
142 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
143
144 $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__);
145 $cnt = 0;
146 if (strlen($arSqls["GROUPBY"]) <= 0)
147 {
148 if ($arRes = $dbRes->Fetch())
149 $cnt = $arRes["CNT"];
150 }
151 else
152 {
153 // only for MySQL
154 $cnt = $dbRes->SelectedRowsCount();
155 }
156
157 $dbRes = new CDBResult();
158 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
159 }
160 else
161 {
162 if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0)
163 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
164
165 $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
166 }
167
168 $dbRes = new CBPHistoryResult($dbRes, $this->useGZipCompression);
169 return $dbRes;
170 }
171
172}
173?>
__construct()
Определения historyservice.php:7
GetHistoryList($arOrder=array("ID"=> "DESC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения historyservice.php:59
UpdateHistory($id, $arFields)
Определения historyservice.php:37
AddHistory($arFields)
Определения historyservice.php:12
$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
$result
Определения get_property_values.php:14
if($ajaxMode) $ID
Определения get_user.php:27
$_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
</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
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168