Tax Inquiry: fixed refrences to non-existing database fields.
[fa-stable.git] / gl / includes / db / gl_db_account_types.inc
index 0ea366ecd7fd16a93dbc8594849648c8dcf14c4c..76d41ede72281a29ecc44dce8aa9bcb2ee8e8d21 100644 (file)
@@ -12,7 +12,7 @@
 function add_account_type($id, $name, $class_id, $parent)
 {
        $sql = "INSERT INTO ".TB_PREF."chart_types (id, name, class_id, parent)
-               VALUES ($id, ".db_escape($name).", ".db_escape($class_id).", ".db_escape($parent).")";
+               VALUES (".db_escape($id).", ".db_escape($name).", ".db_escape($class_id).", ".db_escape($parent).")";
 
        return db_query($sql);
 }
@@ -20,7 +20,7 @@ function add_account_type($id, $name, $class_id, $parent)
 function update_account_type($id, $name, $class_id, $parent, $old_id)
 {
        begin_transaction();
-       if ($old_id != $id)
+       if ($old_id !== $id)
        {
                $sql = "SELECT id FROM ".TB_PREF."chart_types WHERE parent = ".db_escape($old_id);
 
@@ -52,12 +52,26 @@ function update_account_type($id, $name, $class_id, $parent, $old_id)
        return $ret;
 }
 
-function get_account_types($all=false)
+function get_account_types($all=false, $class_id=false, $parent=false)
 {
        $sql = "SELECT * FROM ".TB_PREF."chart_types";
 
-       if (!$all) $sql .= " WHERE !inactive";
-       $sql .= " ORDER BY class_id, id";
+       $where = array();
+       
+       if (!$all)
+               $where[] = "!inactive";
+
+       if ($class_id != false)  
+               $where[] = "class_id=".db_escape($class_id);
+
+       if ($parent == -1) 
+               $where[] ="(parent = '' OR parent = '-1')";
+       elseif ($parent !== false) 
+               $where[] = "parent=".db_escape($parent);
+
+       if (count($where))
+               $sql .= ' WHERE '.implode(' AND ', $where);
+       $sql .= " ORDER BY class_id, id, parent";
 
        return db_query($sql, "could not get account types");
 }
@@ -104,13 +118,19 @@ function update_account_class($id, $name, $ctype)
        return db_query($sql);
 }
 
-function get_account_classes($all=false)
+function get_account_classes($all=false, $balance=-1)
 {
        $sql = "SELECT * FROM ".TB_PREF."chart_class";
-       if (!$all) $sql .= " WHERE !inactive";
-       $sql .= " ORDER BY cid";
 
-       return db_query($sql, "could not get account types");
+       if (!$all) 
+               $sql .= " WHERE !inactive";
+       if ($balance == 0) 
+               $sql .= " AND ctype>".CL_EQUITY." OR ctype=0";
+       elseif ($balance == 1) 
+               $sql .= " AND ctype>0 AND ctype<".CL_INCOME; 
+       $sql .= " ORDER BY ctype, cid";
+
+       return db_query($sql, "could not get account classes");
 }
 
 function get_account_class($id)
@@ -139,4 +159,3 @@ function delete_account_class($id)
        db_query($sql, "could not delete account type");
 }
 
-?>
\ No newline at end of file