Old ineffective sql_trail superseded by new improved db_trail logging only calls...
[fa-stable.git] / includes / db / class.reflines_db.inc
index 47976504a550f29cbbaa7f5db4f4bf7993221d5c..413d2983fa443b30aeb2b7e8c3388f57a9c1625e 100644 (file)
@@ -17,13 +17,13 @@ include_once 'class.data_set.inc';
 **/
 
 class reflines_db extends data_set {
-       function reflines_db()
+       function __construct()
        {
                $this->set_validator('prefix:ui:_check_prefix', _("This prefix conflicts with another one already defined. Prefix have to be unambigous."));
                $this->set_validator('prefix:ui:_check_template', _("Invalid template format."));
                $this->set_validator('trans_type:ui:required', _("Transaction type cannot be empty."));
                $this->set_validator('pattern:ui:required', _("Next reference cannot be empty."));
-               $this->data_set('reflines', 
+               parent::__construct('reflines', 
                        array('trans_type', 'prefix', 'description', 'default', 'pattern', 'id', 'inactive'), 
                        'id');
        }
@@ -153,7 +153,7 @@ class reflines_db extends data_set {
        function find_refline_id($reference, $type, $fallback=true)
        {
                $sql = "SELECT * FROM ".TB_PREF."reflines WHERE trans_type=".db_escape($type)
-                       ." AND CHAR_LENGTH(`prefix`) AND LEFT('$reference', CHAR_LENGTH(`prefix`)) = `prefix`";
+                       ." AND CHAR_LENGTH(`prefix`) AND LEFT(".db_escape($reference).", CHAR_LENGTH(`prefix`)) = `prefix`";
                if ($fallback)  // if not found return refline with empty prefix
                        $sql .= " UNION SELECT * FROM ".TB_PREF."reflines WHERE trans_type=".db_escape($type)." AND `prefix`=''";
                $ret = db_query($sql, "cannot check reference line id");
@@ -167,6 +167,8 @@ class reflines_db extends data_set {
 
        function save_next($type, $reference, $line=null)
        {
+               begin_transaction(__CLASS__.':'.__METHOD__, func_get_args());
+
            $sql = "UPDATE ".TB_PREF."reflines SET pattern=SUBSTRING(" . db_escape(trim($reference)) .", LENGTH(`prefix`)+1)"
                . " WHERE trans_type = ".db_escape($type)." AND ";
 
@@ -175,6 +177,8 @@ class reflines_db extends data_set {
                else
                        $sql .= "`default`";
 
-               return db_query($sql, "The next transaction ref for $type could not be updated");
+               $result = db_query($sql, "The next transaction ref for $type could not be updated");
+               commit_transaction();
+               return $result;
        }
 }