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);
}
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);
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";
+ if (!$all)
+ $sql .= " WHERE !inactive";
+ if ($class_id != false)
+ $sql .= " AND class_id=".db_escape($class_id);
+ if ($parent == -1)
+ $sql .= " AND (parent = '' OR parent = '-1')";
+ elseif ($parent !== false)
+ $sql .= " AND parent=".db_escape($parent);
+ $sql .= " ORDER BY class_id, id, parent";
return db_query($sql, "could not get account types");
}
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)