X-Git-Url: https://git.rvb.name/weathermon.git/blobdiff_plain/3a48d89e76fd2ab87dabf08632474c529cf77ad4..fab7ecb0a35af3393e87edd3dfd36f72abba4911:/web/archive.php
diff --git a/web/archive.php b/web/archive.php
index 76708f7..1b21599 100644
--- a/web/archive.php
+++ b/web/archive.php
@@ -2,15 +2,51 @@
 
 
   WeatherMon (аÑÑ
ив)                       
   ÐаннÑе за  год ÐаннÑе за  год 
  prepare(
           'select 
-             date_format(timestamp,\'%m\') as month,
-             date_format(timestamp,\'%d\') as day
+             date_format(day,\'%m\') as month,
+             date_format(day,\'%d\') as day
            from 
-             sensor_values
+             calendar
            where 
-             timestamp>=str_to_date(\''.$year.'-01-01\',\'%Y-%m-%d\') and 
-             timestamp=str_to_date(\''.$year.'-01-01\',\'%Y-%m-%d\') and 
+             day'.$month_name.' ';
+          echo '';
         } else {
           echo ''.$month_name.' ';
         }
@@ -93,21 +129,33 @@ if (! $year) {
     
     $next_year = $year+1;
 
+    if (!$local_net) {
+
+      $filter = ' and s.is_public=1';
+  
+    } else {
+  
+      $filter = '';
+    
+    }  
+    
+    
+
     $q = $db -> prepare (
       'select 
          s.id sensor,p.id param,s.s_description sensor_name,p.st_description param_name,
-         count(distinct date_format(v.timestamp,\'%d\')) cnt,
-         round(min(v.value),1) min_value,
-         round(max(v.value),1) max_value,
+         count(distinct day) cnt,
+         round(min(v.min),1) min_value,
+         round(max(v.max),1) max_value,
          u.name_short unit
        from
-         sensor_values v,sensors s,st_parameters p,units u
+         sensors_ranges v,sensors s,st_parameters p,units u
        where 
-         v.sensor_id=s.id and
-         v.parameter_id=p.id and
+         v.sensor=s.id and
+         v.parameter=p.id and
          p.st_unit=u.id and
-         v.timestamp>=str_to_date(\''.$year.'-01-01\',\'%Y-%m-%d\') and 
-         v.timestamp=str_to_date(\''.$year.'-01-01\',\'%Y-%m-%d\') and 
+         v.day fetchAll(PDO::FETCH_ASSOC);
       
     foreach ($sensors as $sensor) {
-      
+
+      $units = get_unit($db,$sensor['param']);
+      $from_unit = $units['from'];
+      $to_unit = $units['to'];
+      $param_unit = $units['name'];
+
+      $min_val = convert_unit($db,$sensor['min_value'],$from_unit,$to_unit);
+      $max_val = convert_unit($db,$sensor['max_value'],$from_unit,$to_unit);
+     
       echo ''.$sensor['param_name'].'('.$sensor['sensor_name'].') ';
       echo '';
       echo '';
-      echo 'ÐинималÑное знаÑение за год '.$sensor['min_value'].' '.$sensor['unit'].' '.$sensor['max_value'].' '.$sensor['unit'].' '.$min_val.' '.$param_unit.' '.$max_val.' '.$param_unit.'  
';
 
@@ -152,14 +208,26 @@ if (! $year) {
       $month      = sprintf('%02d',$month);
       $year      = sprintf('%04d',$year);
 
+      if (!$local_net) {
+
+        $filter = ' and s.is_public=1';
+  
+      } else {
+  
+        $filter = '';
+    
+      }  
+    
+
       $q = $db -> prepare( 
           'select  
-             date_format(timestamp,\'%d\') as day
+             date_format(day,\'%d\') as day
            from 
-             sensor_values
+             sensors_ranges r,sensors s 
            where 
-             timestamp>=str_to_date(\''.$year.'-'.$month.'-01\',\'%Y-%m-%d\') and 
-             timestamp=str_to_date(\''.$year.'-'.$month.'-01\',\'%Y-%m-%d\') and 
+             day prepare (
           'select 
              s.id sensor,p.id param,s.s_description sensor_name,p.st_description param_name,
-             count(distinct date_format(v.timestamp,\'%d\')) cnt,
-             round(min(v.value),1) min_value,
-             round(max(v.value),1) max_value,
+             count(distinct day) cnt,
+             round(min(v.min),1) min_value,
+             round(max(v.max),1) max_value,
              u.name_short unit
            from
-             sensor_values v,sensors s,st_parameters p,units u
+             sensors_ranges v,sensors s,st_parameters p,units u
            where 
-             v.sensor_id=s.id and
-             v.parameter_id=p.id and
+             v.sensor=s.id and
+             v.parameter=p.id and
              p.st_unit=u.id and
-             v.timestamp>=str_to_date(\''.$year.'-'.$month.'-01\',\'%Y-%m-%d\') and 
-             v.timestamp=str_to_date(\''.$year.'-'.$month.'-01\',\'%Y-%m-%d\') and 
+             v.day fetchAll(PDO::FETCH_ASSOC);
       
       foreach ($sensors as $sensor) {
+
+        $units = get_unit($db,$sensor['param']);
+        $from_unit = $units['from'];
+        $to_unit = $units['to'];
+        $param_unit = $units['name'];
+
+        $min_val = convert_unit($db,$sensor['min_value'],$from_unit,$to_unit);
+        $max_val = convert_unit($db,$sensor['max_value'],$from_unit,$to_unit);
       
         echo ''.$sensor['param_name'].'('.$sensor['sensor_name'].') ';
         echo '';
         echo '';
-        echo 'ÐинималÑное знаÑение за меÑÑÑ '.$sensor['min_value'].' '.$sensor['unit'].' '.$sensor['max_value'].' '.$sensor['unit'].' '.$min_val.' '.$param_unit.' '.$max_val.' '.$param_unit.'  
';
 
@@ -225,16 +312,26 @@ if (! $year) {
       $year      = sprintf('%04d',$year);
       $day       = sprintf('%02d',$day);
 
+      if (!$local_net) {
+
+        $filter = ' and s.is_public=1';
+  
+      } else {
+  
+        $filter = '';
+    
+      }
+
+
       $q = $db -> prepare(
   	    'select 
-    		distinct v.sensor_id,s.s_description,p.id as param_id,p.st_description 
+    		distinct v.sensor as sensor_id,s.s_description,p.id as param_id,p.st_description 
   	     from 
-    		sensor_values v,st_parameters p,sensors s 
+    		sensors_ranges v,st_parameters p,sensors s 
   	     where 
-                v.timestamp>=str_to_date(\''.$year.'-'.$month.'-'.$day.'\',\'%Y-%m-%d\') and 
-                v.timestamp execute();