summaryrefslogtreecommitdiff
path: root/configs/getlvrmin.sql
diff options
context:
space:
mode:
Diffstat (limited to 'configs/getlvrmin.sql')
-rw-r--r--configs/getlvrmin.sql51
1 files changed, 51 insertions, 0 deletions
diff --git a/configs/getlvrmin.sql b/configs/getlvrmin.sql
new file mode 100644
index 0000000..d075dfd
--- /dev/null
+++ b/configs/getlvrmin.sql
@@ -0,0 +1,51 @@
+CREATE FUNCTION getlvrmin ( vdr_starttime int(10), ext_starttime int(10), vdr_duration int(5), ext_duration int(5), lv1 int(3), lv2 int(3), lv3 int(3), lv4 int(3) )
+RETURNS int
+NOT DETERMINISTIC
+BEGIN
+DECLARE delta_st int;
+DECLARE delta_du int;
+DECLARE lv_time int default 0;
+DECLARE lv_min int;
+DECLARE lv_dur int;
+DECLARE lv_sum int;
+
+IF vdr_duration = ext_duration then set delta_du = 100;
+ELSEIF vdr_duration > ext_duration then set delta_du = round(vdr_duration/ext_duration*100,0);
+ELSE set delta_du = round(ext_duration/vdr_duration*100,0);
+END IF;
+
+IF delta_du > 184 then set lv_dur = 50;
+ELSEIF delta_du > 168 then set lv_dur = 40;
+ELSEIF delta_du > 152 then set lv_dur = 30;
+ELSEIF delta_du > 136 then set lv_dur = 20;
+ELSEIF delta_du > 120 then set lv_dur = 10;
+ELSE set lv_dur = 0;
+END IF;
+
+IF vdr_starttime = ext_starttime then set delta_st = 100;
+ELSEIF vdr_starttime > ext_starttime then set delta_st = vdr_starttime-ext_starttime;
+ELSE set delta_st = ext_starttime-vdr_starttime;
+END IF;
+
+IF delta_st <= 600 then
+ IF delta_st > 540 then set lv_time = 50;
+ ELSEIF delta_st > 480 then set lv_time = 40;
+ ELSEIF delta_st > 420 then set lv_time = 30;
+ ELSEIF delta_st > 360 then set lv_time = 20;
+ ELSEIF delta_st > 300 then set lv_time = 10;
+ ELSE set lv_time = 0;
+ END IF;
+
+ set lv_min = LEAST(lv1,lv2,lv3,lv4);
+
+ set lv_sum = lv_time + lv_dur + lv_min;
+
+ELSEIF lv_dur + lv1 + lv4 <= 60 then set lv_sum = 60;
+ELSEIF lv1 <= 30 and vdr_starttime = ext_starttime then set lv_sum = 60;
+ELSEIF lv1 <= 30 and vdr_duration/abs(vdr_starttime-ext_starttime) >= 2.5 then set lv_sum = 60;
+ELSE set lv_sum = 99;
+END IF;
+
+RETURN lv_sum;
+
+END