1<?php 2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */ 3 4 5/** 6 * @author Björn Heyser <bheyser@databay.de> 7 * @version $Id$ 8 * 9 * @package Modules/Test 10 */ 11class ilTestSkillLevelThreshold 12{ 13 /** 14 * @var ilDBInterface 15 */ 16 private $db; 17 18 /** 19 * @var integer 20 */ 21 private $testId; 22 23 /** 24 * @var integer 25 */ 26 private $skillBaseId; 27 28 /** 29 * @var integer 30 */ 31 private $skillTrefId; 32 33 /** 34 * @var integer 35 */ 36 private $skillLevelId; 37 38 /** 39 * @var integer 40 */ 41 private $threshold; 42 43 public function __construct(ilDBInterface $db) 44 { 45 $this->db = $db; 46 } 47 48 public function loadFromDb() 49 { 50 $query = " 51 SELECT test_fi, skill_base_fi, skill_tref_fi, skill_level_fi, threshold 52 FROM tst_skl_thresholds 53 WHERE test_fi = %s 54 AND skill_base_fi = %s 55 AND skill_tref_fi = %s 56 AND skill_level_fi = %s 57 "; 58 59 $res = $this->db->queryF( 60 $query, 61 array('integer', 'integer', 'integer', 'integer'), 62 array($this->getTestId(), $this->getSkillBaseId(), $this->getSkillTrefId(), $this->getSkillLevelId()) 63 ); 64 65 $row = $this->db->fetchAssoc($res); 66 67 if (is_array($row)) { 68 $this->setThreshold($row['threshold']); 69 } 70 } 71 72 public function saveToDb() 73 { 74 if ($this->dbRecordExists()) { 75 $this->db->update( 76 'tst_skl_thresholds', 77 array( 78 'threshold' => array('integer', $this->getThreshold()) 79 ), 80 array( 81 'test_fi' => array('integer', $this->getTestId()), 82 'skill_base_fi' => array('integer', $this->getSkillBaseId()), 83 'skill_tref_fi' => array('integer', $this->getSkillTrefId()), 84 'skill_level_fi' => array('integer', $this->getSkillLevelId()) 85 ) 86 ); 87 } else { 88 $this->db->insert('tst_skl_thresholds', array( 89 'test_fi' => array('integer', $this->getTestId()), 90 'skill_base_fi' => array('integer', $this->getSkillBaseId()), 91 'skill_tref_fi' => array('integer', $this->getSkillTrefId()), 92 'skill_level_fi' => array('integer', $this->getSkillLevelId()), 93 'threshold' => array('integer', $this->getThreshold()) 94 )); 95 } 96 } 97 98 public function deleteFromDb() 99 { 100 $query = " 101 DELETE FROM tst_skl_thresholds 102 WHERE test_fi = %s 103 AND skill_base_fi = %s 104 AND skill_tref_fi = %s 105 AND skill_level_fi = %s 106 "; 107 108 $this->db->manipulateF( 109 $query, 110 array('integer', 'integer', 'integer', 'integer'), 111 array($this->getTestId(), $this->getSkillBaseId(), $this->getSkillTrefId(), $this->getSkillLevelId()) 112 ); 113 } 114 115 public function dbRecordExists() 116 { 117 $query = " 118 SELECT COUNT(*) cnt 119 FROM tst_skl_thresholds 120 WHERE test_fi = %s 121 AND skill_base_fi = %s 122 AND skill_tref_fi = %s 123 AND skill_level_fi = %s 124 "; 125 126 $res = $this->db->queryF( 127 $query, 128 array('integer', 'integer', 'integer', 'integer'), 129 array($this->getTestId(), $this->getSkillBaseId(), $this->getSkillTrefId(), $this->getSkillLevelId()) 130 ); 131 132 $row = $this->db->fetchAssoc($res); 133 134 return $row['cnt'] > 0; 135 } 136 137 /** 138 * @param int $testId 139 */ 140 public function setTestId($testId) 141 { 142 $this->testId = $testId; 143 } 144 145 /** 146 * @return int 147 */ 148 public function getTestId() 149 { 150 return $this->testId; 151 } 152 153 /** 154 * @param int $skillBaseId 155 */ 156 public function setSkillBaseId($skillBaseId) 157 { 158 $this->skillBaseId = $skillBaseId; 159 } 160 161 /** 162 * @return int 163 */ 164 public function getSkillBaseId() 165 { 166 return $this->skillBaseId; 167 } 168 169 /** 170 * @param int $skillTrefId 171 */ 172 public function setSkillTrefId($skillTrefId) 173 { 174 $this->skillTrefId = $skillTrefId; 175 } 176 177 /** 178 * @return int 179 */ 180 public function getSkillTrefId() 181 { 182 return $this->skillTrefId; 183 } 184 185 /** 186 * @param int $skillLevelId 187 */ 188 public function setSkillLevelId($skillLevelId) 189 { 190 $this->skillLevelId = $skillLevelId; 191 } 192 193 /** 194 * @return int 195 */ 196 public function getSkillLevelId() 197 { 198 return $this->skillLevelId; 199 } 200 201 /** 202 * @param int $threshold 203 */ 204 public function setThreshold($threshold) 205 { 206 $this->threshold = $threshold; 207 } 208 209 /** 210 * @return int 211 */ 212 public function getThreshold() 213 { 214 return $this->threshold; 215 } 216} 217