phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] [20981] Fix: missing transaction / sql - 4512:4565


From: Sigurd Nes
Subject: [Phpgroupware-cvs] [20981] Fix: missing transaction / sql - 4512:4565
Date: Fri, 22 Jan 2010 09:52:45 +0000

Revision: 20981
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=20981
Author:   sigurdne
Date:     2010-01-22 09:52:44 +0000 (Fri, 22 Jan 2010)
Log Message:
-----------
Fix: missing transaction / sql  - 4512:4565

Modified Paths:
--------------
    people/sigurdne/modules/hrm/trunk/inc/class.sojob.inc.php

Modified: people/sigurdne/modules/hrm/trunk/inc/class.sojob.inc.php
===================================================================
--- people/sigurdne/modules/hrm/trunk/inc/class.sojob.inc.php   2010-01-22 
09:51:24 UTC (rev 20980)
+++ people/sigurdne/modules/hrm/trunk/inc/class.sojob.inc.php   2010-01-22 
09:52:44 UTC (rev 20981)
@@ -182,7 +182,7 @@
                                }
 
                        }
-                       
+
                        return $jobs;
                }
 
@@ -261,7 +261,7 @@
                        }
 
                        $groupmethod = ' GROUP BY phpgw_hrm_quali.category';
-                       
+
                        $sql = "SELECT phpgw_hrm_quali.id as quali_id, 
phpgw_hrm_quali.remark as remark,phpgw_hrm_quali_category.descr as 
category,phpgw_hrm_quali_type.name,phpgw_hrm_quali_type.descr from 
phpgw_hrm_quali"
                                . " $this->join phpgw_hrm_quali_type ON 
phpgw_hrm_quali.quali_type_id = phpgw_hrm_quali_type.id"
                                . " $this->join phpgw_hrm_quali_category ON 
phpgw_hrm_quali.category = phpgw_hrm_quali_category.id"
@@ -458,39 +458,28 @@
 
                function read_task($data)
                {
-                       if(is_array($data))
-                       {
-                               if ($data['start'])
-                               {
-                                       $start=$data['start'];
-                               }
-                               else
-                               {
-                                       $start=0;
-                               }
-                               $query          = 
(isset($data['query'])?$data['query']:'');
-                               $sort           = 
(isset($data['sort'])?$data['sort']:'DESC');
-                               $order          = 
(isset($data['order'])?$data['order']:'');
-                               $allrows        = 
(isset($data['allrows'])?$data['allrows']:'');
-                       }
+                       $start          = isset($data['start']) && 
$data['start'] ? $data['start']:0;
+                       $query          = isset($data['query']) ? 
$data['query'] : '';
+                       $sort           = isset($data['sort']) && 
$data['sort']? $data['sort'] : 'DESC';
+                       $order          = isset($data['order']) ? 
$data['order'] : '';
+                       $allrows        = isset($data['allrows']) ? 
$data['allrows'] : '';
+                       $job_id         = $data['job_id'];
+                       $filter_id = isset($data['filter_id']) ? 
$data['filter_id'] : '';
 
-                       $job_id = $data['job_id'];
-                       $filter_id = $data['filter_id'];
-
                        if ($order)
                        {
-                               $ordermethod = " order by $order $sort";
-
+                               $ordermethod = " ORDER BY $order $sort";
                        }
                        else
                        {
-                               $ordermethod = ' order by value_sort asc';
+                               $ordermethod = ' ORDER BY value_sort asc';
                        }
 
                        $sql = "SELECT * from phpgw_hrm_task  WHERE job_id=" . 
intval($job_id);
 
                        $parent_select = ' AND task_level =0';
 
+                       $querymethod = '';
                        if($filter_id)
                        {
                                $querymethod = " AND id != $filter_id";
@@ -498,13 +487,10 @@
 
                        if($query)
                        {
-                               $query = preg_replace("/'/",'',$query);
-                               $query = preg_replace('/"/','',$query);
-
-                               $querymethod .= " AND name $this->like 
'%$query%'";
+                               $query = $this->db->db_addslashes($query);
+                               $querymethod .= " AND name {$this->like} 
'%{$query}%'";
                        }
 
-
                        $this->db->query($sql . $parent_select . $querymethod . 
$ordermethod,__LINE__,__FILE__);
                        $this->total_records = $this->db->num_rows();
 
@@ -543,7 +529,7 @@
                                        $subtasks[$j]['name']        = 
$this->db->f('name');
                                        $subtasks[$j]['descr'] = 
$this->db->f('descr');
                                        $subtasks[$j]['value_sort'] = 
$value_sort;
-                                       
+
                                        $j++;
                                        $value_sort ++;
                                }
@@ -583,6 +569,8 @@
 
                function add_job($values)
                {
+                       $receipt = array();
+                       $this->db->transaction_begin();
                        $table = 'phpgw_hrm_job';
 
                        if($values['parent_id'])
@@ -610,15 +598,15 @@
 
                        $insert_values  = 
$this->db->validate_insert($insert_values);
 
-
                        $this->db->query("INSERT INTO $table 
(name,descr,job_parent,job_level,entry_date,owner) "
                                . "VALUES ($insert_values)",__LINE__,__FILE__);
 
-                       $receipt['message'][]=array('msg'=>lang('job has been 
saved'));
-
                        $receipt['id'] = 
$this->db->get_last_insert_id($table,'id');
-
-                       $this->db->transaction_commit();
+                       
+                       if($this->db->transaction_commit())
+                       {
+                               $receipt['message'][]=array('msg'=>lang('job 
has been saved'));
+                       }
                        return $receipt;
                }
 
@@ -814,6 +802,7 @@
 
                function add_task($values)
                {
+                       $this->db->transaction_begin();
                        $table = 'phpgw_hrm_task';
 
                        $this->db->query("SELECT max(value_sort) as value_sort 
FROM $table WHERE job_id = " . (int)$values['job_id'],__LINE__,__FILE__);
@@ -823,7 +812,8 @@
 
                        if($values['parent_id'])
                        {
-                               $this->db->query("SELECT task_level, 
max(value_sort) as value_sort FROM $table  where id=" . 
intval($values['parent_id']),__LINE__,__FILE__);
+                               $values['parent_id'] = 
(int)$values['parent_id'];
+                               $this->db->query("SELECT task_level FROM 
{$table} WHERE id={$values['parent_id']}",__LINE__,__FILE__);
                                $this->db->next_record();
                                $level  = (int)$this->db->f('task_level') +1;
                        }
@@ -1091,7 +1081,7 @@
                function add_qualification($values)
                {
                        $value['remark'] = 
$this->db->db_addslashes($values['remark']);
-                       
+
                        $this->db->query("SELECT  max(value_sort) as value_sort 
FROM phpgw_hrm_quali WHERE job_id = " . 
(int)$values['job_id'],__LINE__,__FILE__);
                        $this->db->next_record();
                        $value_sort     = (int)$this->db->f('value_sort') +1;
@@ -1116,7 +1106,7 @@
                                . "VALUES ($insert_values)",__LINE__,__FILE__);
 
                        $quali_id = 
$this->db->get_last_insert_id('phpgw_hrm_quali','id');
-                       
+
                        if(is_array($values['alternative_qualification']))
                        {
                                $this->db->query("UPDATE phpgw_hrm_quali set 
is_parent = 1 WHERE id= $quali_id",__LINE__,__FILE__);
@@ -1217,7 +1207,7 @@
                        $this->db->query('DELETE FROM phpgw_hrm_quali WHERE 
id='  . intval($id) . ' AND job_id='  . intval($job_id),__LINE__,__FILE__);
                        $this->db->transaction_commit();
                }
-               
+
                function resort_value($data)
                {
                        if(is_array($data))
@@ -1243,6 +1233,7 @@
                                return;
                        }
 
+                       $this->db->transaction_begin();
                        $sql = "SELECT value_sort FROM $table where 
job_id=$job_id AND id=$id";
                        $this->db->query($sql,__LINE__,__FILE__);
                        $this->db->next_record();
@@ -1276,6 +1267,6 @@
                                        return;
                                        break;
                        }
+                       $this->db->transaction_commit();
                }
-               
        }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]