1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
stateventtype.php
См. документацию.
1<?php
3
5{
6 public static function Delete($ID, $DELETE_EVENT="Y")
7 {
8 $DB = CDatabase::GetModuleConnection('statistic');
9 $ID = intval($ID);
10
11 $strSql = "SELECT ID FROM b_stat_event_list WHERE EVENT_ID='$ID'";
12 $a = $DB->Query($strSql);
13 while ($ar = $a->Fetch())
14 {
16 }
17
18 $DB->Query("DELETE FROM b_stat_event_day WHERE EVENT_ID='$ID'");
19 if ($DELETE_EVENT=="Y")
20 {
21 $DB->Query("DELETE FROM b_stat_event WHERE ID='$ID'");
22 }
23 else
24 {
25 $DB->Query("UPDATE b_stat_event SET DATE_ENTER=null WHERE ID='$ID'");
26 }
27 return true;
28 }
29
30 // returns arrays which is nedded for plot drawing
31 public static function GetGraphArray($arFilter, &$arrLegend)
32 {
33 $DB = CDatabase::GetModuleConnection('statistic');
34 $arSqlSearch = Array();
35
36 if (is_array($arFilter))
37 {
38 foreach ($arFilter as $key => $val)
39 {
40 if(is_array($val))
41 {
42 if(count($val) <= 0)
43 continue;
44 }
45 else
46 {
47 if( ((string)$val == '') || ($val === "NOT_REF") )
48 continue;
49 }
50 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
51 $key = strtoupper($key);
52 switch($key)
53 {
54 case "EVENT_ID":
55 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
56 $arSqlSearch[] = GetFilterQuery("D.EVENT_ID",$val,$match);
57 break;
58 case "DATE1":
60 $arSqlSearch[] = "D.DATE_STAT>=".$DB->CharToDateFunction($val, "SHORT");
61 break;
62 case "DATE2":
64 $arSqlSearch[] = "D.DATE_STAT<=".$DB->CharToDateFunction($val." 23:59:59", "FULL");
65 break;
66 }
67 }
68 }
69 $arrDays = array();
70 $arrLegend = array();
71 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
72 $summa = $arFilter["SUMMA"]=="Y" ? "Y" : "N";
73 $strSql = CStatEventType::GetGraphArray_SQL($strSqlSearch);
74 $rsD = $DB->Query($strSql);
75 while ($arD = $rsD->Fetch())
76 {
77 $arrDays[$arD["DATE_STAT"]]["D"] = $arD["DAY"];
78 $arrDays[$arD["DATE_STAT"]]["M"] = $arD["MONTH"];
79 $arrDays[$arD["DATE_STAT"]]["Y"] = $arD["YEAR"];
80 if ($summa=="N")
81 {
82 $arrDays[$arD["DATE_STAT"]][$arD["EVENT_ID"]]["COUNTER"] = $arD["COUNTER"];
83 $arrDays[$arD["DATE_STAT"]][$arD["EVENT_ID"]]["MONEY"] = $arD["MONEY"];
84 $arrLegend[$arD["EVENT_ID"]]["COUNTER_TYPE"] = "DETAIL";
85 $arrLegend[$arD["EVENT_ID"]]["NAME"] = ($arD["NAME"] <> '') ? $arD["NAME"] : $arD["EVENT1"]." / ".$arD["EVENT2"];
86 }
87 elseif ($summa=="Y")
88 {
89 $arrDays[$arD["DATE_STAT"]]["COUNTER"] += $arD["COUNTER"];
90 $arrDays[$arD["DATE_STAT"]]["MONEY"] += $arD["MONEY"];
91 $arrLegend[0]["COUNTER_TYPE"] = "TOTAL";
92 }
93 }
94
95 $color = "";
96 $total = sizeof($arrLegend);
97 foreach ($arrLegend as $key => $arr)
98 {
99 $color = GetNextRGB($color, $total);
100 $arrLegend[$key]["COLOR"] = $color;
101 }
102
103 return $arrDays;
104 }
105
106 public static function ConditionSet($event1, $event2, &$arEventType)
107 {
108 $err_mess = "File: ".__FILE__."<br>Line: ";
109 $DB = CDatabase::GetModuleConnection('statistic');
110 $w = CStatEventType::GetByEvents($event1, $event2);
111 $arEventType = $w->Fetch();
112 $EVENT_ID = intval($arEventType["EVENT_ID"]);
113
114 if ($EVENT_ID<=0)
115 {
116 if ($event1 <> '' || $event2 <> '')
117 {
118 // save to database
119 $arFields = Array(
120 "EVENT1" => ($event1 <> '') ? "'".$DB->ForSql($event1,200)."'" : "null",
121 "EVENT2" => ($event2 <> '') ? "'".$DB->ForSql($event2,200)."'" : "null",
122 "DATE_ENTER" => "null"
123 );
124 $EVENT_ID = $DB->Insert("b_stat_event", $arFields, $err_mess.__LINE__);
125 }
126 }
127 return intval($EVENT_ID);
128 }
129
130 public static function GetByEvents($event1, $event2)
131 {
132 $DB = CDatabase::GetModuleConnection('statistic');
133 $event1 = $DB->ForSql(trim($event1),200);
134 $event2 = $DB->ForSql(trim($event2),200);
135 $where1 = ($event1 == '') ? "(EVENT1='' or EVENT1 is null)" : "(EVENT1 = '$event1')";
136 $where2 = ($event2 == '') ? "(EVENT2='' or EVENT2 is null)" : "(EVENT2 = '$event2')";
137 $strSql = "
138 SELECT
139 ID as EVENT_ID,
140 ID as TYPE_ID,
141 DYNAMIC_KEEP_DAYS,
142 KEEP_DAYS,
143 DATE_ENTER,
144 ".$DB->DateToCharFunction("DATE_ENTER")." DATE_ENTER_STR
145 FROM
146 b_stat_event
147 WHERE $where1 and $where2
148 ";
149 $w = $DB->Query($strSql);
150 return $w;
151 }
152
153 public static function DynamicDays($EVENT_ID, $date1="", $date2="")
154 {
155 $arMaxMin = array();
156 $arFilter = array("DATE1"=>$date1, "DATE2"=>$date2);
157 $z = CStatEventType::GetDynamicList($EVENT_ID, '', '', $arMaxMin, $arFilter);
158 $d = 0;
159 while($zr = $z->Fetch())
160 if(intval($zr["COUNTER"]) > 0)
161 $d++;
162 return $d;
163 }
164 //check fields before writing
166 {
167 $aMsg = array();
168
169 if(is_set($arFields, "EVENT1") && $arFields["EVENT1"] == '')
170 $aMsg[] = array("id"=>"EVENT1", "text"=>GetMessage("STAT_FORGOT_EVENT1"));
171 if(is_set($arFields, "EVENT2") && $arFields["EVENT2"] == '')
172 $aMsg[] = array("id"=>"EVENT2", "text"=>GetMessage("STAT_FORGOT_EVENT2"));
173 if(intval($ID)==0)
174 {
175 $rs = $this->GetByEvents($arFields["EVENT1"], $arFields["EVENT2"]);
176 if($rs->Fetch())
177 $aMsg[] = array("id"=>"EVENT1", "text"=>GetMessage("STAT_WRONG_EVENT"));
178 }
179
180 if(!empty($aMsg))
181 {
182 $e = new CAdminException($aMsg);
183 $GLOBALS["APPLICATION"]->ThrowException($e);
184 return false;
185 }
186
187 return true;
188 }
189}
static Delete($ID, $DELETE_EVENT="Y")
Определения stateventtype.php:6
CheckFields($arFields, $ID)
Определения stateventtype.php:165
static ConditionSet($event1, $event2, &$arEventType)
Определения stateventtype.php:106
static GetByEvents($event1, $event2)
Определения stateventtype.php:130
static DynamicDays($EVENT_ID, $date1="", $date2="")
Определения stateventtype.php:153
static GetGraphArray($arFilter, &$arrLegend)
Определения stateventtype.php:31
static Delete($ID)
Определения statevent.php:460
static GetGraphArray_SQL($strSqlSearch)
Определения stateventtype.php:567
static GetDynamicList($EVENT_ID, $by='s_date', $order='desc', &$arMaxMin=[], $arFilter=[])
Определения stateventtype.php:472
$arFields
Определения dblapprove.php:5
$arr
Определения file_new.php:624
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
$zr
Определения options.php:5
if($ajaxMode) $ID
Определения get_user.php:27
global $DB
Определения cron_frame.php:29
GetNextRGB($base_color, $total)
Определения img.php:93
$z
Определения options.php:31
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
CheckDateTime($datetime, $format=false)
Определения tools.php:398
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$ar
Определения options.php:199
if(empty($signedUserToken)) $key
Определения quickway.php:257
</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
else $a
Определения template.php:137
$val
Определения options.php:1793
$rs
Определения action.php:82
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106