DROP FUNCTION IF EXISTS cms_page_fullpath;
DELIMITER $$
-
-CREATE FUNCTION cms_page_fullpath(in_id INT(11))
- RETURNS VARCHAR(256) DETERMINISTIC
+CREATE FUNCTION proximity_academic(
+ in_id INT(11)
+)
+RETURNS VARCHAR(254) DETERMINISTIC
BEGIN
- DECLARE ret VARCHAR(256);
- SET ret = '';
- SELECT name INTO ret FROM core_enum
- WHERE id=in_id LIMIT 1;
- RETURN ret;
+
+ DECLARE v_ret DECIMAL(5,2);
+ DECLARE v_person_academic_name VARCHAR(256);
+ DECLARE v_criteria_academic_name VARCHAR(256);
+
+ SET v_ret= 0;
+
+ IF (in_academic_level_id = in_criteria) THEN
+ SET v_ret = 1;
+ ELSE
+ SELECT name INTO v_person_academic_name FROM core_enum WHERE id = in_academic_level_id;
+ SELECT name INTO v_criteria_academic_name FROM core_enum WHERE id = in_criteria;
+
+ SET v_ret = 1 - (v_person_academic_name - v_criteria_academic_name) * 0.2;
+
+ END IF;
+
+ IF NOT in_is_average THEN
+ RETURN v_ret;
+ END IF;
+
+ IF v_ret > 1 THEN
+ RETURN 1;
+ END IF;
+
+ IF v_ret < 0 THEN
+ RETURN 0;
+ END IF;
+
+ RETURN v_ret;
END $$
+
DELIMITER ;
\ No newline at end of file